blob: c709e45dae565997ebf6475d0656eece9c70455d [file] [log] [blame]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Guido van Rossumf70e43a1991-02-19 12:39:46 +00003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Guido van Rossum86bea461997-04-29 21:03:06 +00005extern int Py_DebugFlag;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006#define D(x) if (Py_DebugFlag) x;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00007#else
8#define D(x)
9#endif
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010static const int n_keyword_lists = 9;
11static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010012 (KeywordToken[]) {{NULL, -1}},
13 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014 (KeywordToken[]) {
15 {"if", 510},
16 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017 {"as", 520},
18 {"is", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019 {"or", 531},
20 {NULL, -1},
21 },
22 (KeywordToken[]) {
23 {"del", 503},
24 {"try", 511},
25 {"for", 517},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026 {"def", 523},
27 {"not", 526},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028 {"and", 532},
29 {NULL, -1},
30 },
31 (KeywordToken[]) {
32 {"pass", 502},
33 {"from", 514},
34 {"elif", 515},
35 {"else", 516},
36 {"with", 519},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030037 {"True", 528},
38 {"None", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010039 {NULL, -1},
40 },
41 (KeywordToken[]) {
42 {"raise", 501},
43 {"yield", 504},
44 {"break", 506},
45 {"while", 512},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030046 {"class", 524},
47 {"False", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010048 {NULL, -1},
49 },
50 (KeywordToken[]) {
51 {"return", 500},
52 {"assert", 505},
53 {"global", 508},
54 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030055 {"except", 521},
56 {"lambda", 525},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010057 {NULL, -1},
58 },
59 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030060 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010061 {NULL, -1},
62 },
63 (KeywordToken[]) {
64 {"continue", 507},
65 {"nonlocal", 509},
66 {NULL, -1},
67 },
68};
69#define file_type 1000
70#define interactive_type 1001
71#define eval_type 1002
72#define func_type_type 1003
73#define fstring_type 1004
74#define type_expressions_type 1005
75#define statements_type 1006
76#define statement_type 1007
77#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000078#define simple_stmts_type 1009
79#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010080#define compound_stmt_type 1011
81#define assignment_type 1012
82#define augassign_type 1013
83#define global_stmt_type 1014
84#define nonlocal_stmt_type 1015
85#define yield_stmt_type 1016
86#define assert_stmt_type 1017
87#define del_stmt_type 1018
88#define import_stmt_type 1019
89#define import_name_type 1020
90#define import_from_type 1021
91#define import_from_targets_type 1022
92#define import_from_as_names_type 1023
93#define import_from_as_name_type 1024
94#define dotted_as_names_type 1025
95#define dotted_as_name_type 1026
96#define dotted_name_type 1027 // Left-recursive
97#define if_stmt_type 1028
98#define elif_stmt_type 1029
99#define else_block_type 1030
100#define while_stmt_type 1031
101#define for_stmt_type 1032
102#define with_stmt_type 1033
103#define with_item_type 1034
104#define try_stmt_type 1035
105#define except_block_type 1036
106#define finally_block_type 1037
107#define return_stmt_type 1038
108#define raise_stmt_type 1039
109#define function_def_type 1040
110#define function_def_raw_type 1041
111#define func_type_comment_type 1042
112#define params_type 1043
113#define parameters_type 1044
114#define slash_no_default_type 1045
115#define slash_with_default_type 1046
116#define star_etc_type 1047
117#define kwds_type 1048
118#define param_no_default_type 1049
119#define param_with_default_type 1050
120#define param_maybe_default_type 1051
121#define param_type 1052
122#define annotation_type 1053
123#define default_type 1054
124#define decorators_type 1055
125#define class_def_type 1056
126#define class_def_raw_type 1057
127#define block_type 1058
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000128#define star_expressions_type 1059
129#define star_expression_type 1060
130#define star_named_expressions_type 1061
131#define star_named_expression_type 1062
132#define named_expression_type 1063
133#define annotated_rhs_type 1064
134#define expressions_type 1065
135#define expression_type 1066
136#define lambdef_type 1067
137#define lambda_params_type 1068
138#define lambda_parameters_type 1069
139#define lambda_slash_no_default_type 1070
140#define lambda_slash_with_default_type 1071
141#define lambda_star_etc_type 1072
142#define lambda_kwds_type 1073
143#define lambda_param_no_default_type 1074
144#define lambda_param_with_default_type 1075
145#define lambda_param_maybe_default_type 1076
146#define lambda_param_type 1077
147#define disjunction_type 1078
148#define conjunction_type 1079
149#define inversion_type 1080
150#define comparison_type 1081
151#define compare_op_bitwise_or_pair_type 1082
152#define eq_bitwise_or_type 1083
153#define noteq_bitwise_or_type 1084
154#define lte_bitwise_or_type 1085
155#define lt_bitwise_or_type 1086
156#define gte_bitwise_or_type 1087
157#define gt_bitwise_or_type 1088
158#define notin_bitwise_or_type 1089
159#define in_bitwise_or_type 1090
160#define isnot_bitwise_or_type 1091
161#define is_bitwise_or_type 1092
162#define bitwise_or_type 1093 // Left-recursive
163#define bitwise_xor_type 1094 // Left-recursive
164#define bitwise_and_type 1095 // Left-recursive
165#define shift_expr_type 1096 // Left-recursive
166#define sum_type 1097 // Left-recursive
167#define term_type 1098 // Left-recursive
168#define factor_type 1099
169#define power_type 1100
170#define await_primary_type 1101
171#define primary_type 1102 // Left-recursive
172#define slices_type 1103
173#define slice_type 1104
174#define atom_type 1105
175#define strings_type 1106
176#define list_type 1107
177#define listcomp_type 1108
178#define tuple_type 1109
179#define group_type 1110
180#define genexp_type 1111
181#define set_type 1112
182#define setcomp_type 1113
183#define dict_type 1114
184#define dictcomp_type 1115
185#define double_starred_kvpairs_type 1116
186#define double_starred_kvpair_type 1117
187#define kvpair_type 1118
188#define for_if_clauses_type 1119
189#define for_if_clause_type 1120
190#define yield_expr_type 1121
191#define arguments_type 1122
192#define args_type 1123
193#define kwargs_type 1124
194#define starred_expression_type 1125
195#define kwarg_or_starred_type 1126
196#define kwarg_or_double_starred_type 1127
197#define star_targets_type 1128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200198#define star_targets_list_seq_type 1129
199#define star_targets_tuple_seq_type 1130
200#define star_target_type 1131
201#define target_with_star_atom_type 1132
202#define star_atom_type 1133
203#define single_target_type 1134
204#define single_subscript_attribute_target_type 1135
205#define del_targets_type 1136
206#define del_target_type 1137
207#define del_t_atom_type 1138
208#define targets_type 1139
209#define target_type 1140
210#define t_primary_type 1141 // Left-recursive
211#define t_lookahead_type 1142
212#define t_atom_type 1143
213#define invalid_arguments_type 1144
214#define invalid_kwarg_type 1145
215#define invalid_named_expression_type 1146
216#define invalid_assignment_type 1147
217#define invalid_ann_assign_target_type 1148
218#define invalid_del_stmt_type 1149
219#define invalid_block_type 1150
220#define invalid_primary_type 1151 // Left-recursive
221#define invalid_comprehension_type 1152
222#define invalid_dict_comprehension_type 1153
223#define invalid_parameters_type 1154
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200224#define invalid_parameters_helper_type 1155
225#define invalid_lambda_parameters_type 1156
226#define invalid_lambda_parameters_helper_type 1157
227#define invalid_star_etc_type 1158
228#define invalid_lambda_star_etc_type 1159
229#define invalid_double_type_comments_type 1160
230#define invalid_with_item_type 1161
231#define invalid_for_target_type 1162
232#define invalid_group_type 1163
233#define invalid_import_from_targets_type 1164
Pablo Galindo58fb1562021-02-02 19:54:22 +0000234#define invalid_with_stmt_type 1165
235#define _loop0_1_type 1166
236#define _loop0_2_type 1167
237#define _loop0_4_type 1168
238#define _gather_3_type 1169
239#define _loop0_6_type 1170
240#define _gather_5_type 1171
241#define _loop0_8_type 1172
242#define _gather_7_type 1173
243#define _loop0_10_type 1174
244#define _gather_9_type 1175
245#define _loop1_11_type 1176
246#define _loop0_13_type 1177
247#define _gather_12_type 1178
248#define _tmp_14_type 1179
249#define _tmp_15_type 1180
250#define _tmp_16_type 1181
251#define _tmp_17_type 1182
252#define _tmp_18_type 1183
253#define _tmp_19_type 1184
254#define _tmp_20_type 1185
255#define _tmp_21_type 1186
256#define _loop1_22_type 1187
257#define _tmp_23_type 1188
258#define _tmp_24_type 1189
259#define _loop0_26_type 1190
260#define _gather_25_type 1191
261#define _loop0_28_type 1192
262#define _gather_27_type 1193
263#define _tmp_29_type 1194
264#define _tmp_30_type 1195
265#define _loop0_31_type 1196
266#define _loop1_32_type 1197
267#define _loop0_34_type 1198
268#define _gather_33_type 1199
269#define _tmp_35_type 1200
270#define _loop0_37_type 1201
271#define _gather_36_type 1202
272#define _tmp_38_type 1203
273#define _loop0_40_type 1204
274#define _gather_39_type 1205
275#define _loop0_42_type 1206
276#define _gather_41_type 1207
277#define _loop0_44_type 1208
278#define _gather_43_type 1209
279#define _loop0_46_type 1210
280#define _gather_45_type 1211
281#define _tmp_47_type 1212
282#define _loop1_48_type 1213
283#define _tmp_49_type 1214
284#define _tmp_50_type 1215
285#define _tmp_51_type 1216
286#define _tmp_52_type 1217
287#define _tmp_53_type 1218
288#define _loop0_54_type 1219
289#define _loop0_55_type 1220
290#define _loop0_56_type 1221
291#define _loop1_57_type 1222
292#define _loop0_58_type 1223
293#define _loop1_59_type 1224
294#define _loop1_60_type 1225
295#define _loop1_61_type 1226
296#define _loop0_62_type 1227
297#define _loop1_63_type 1228
298#define _loop0_64_type 1229
299#define _loop1_65_type 1230
300#define _loop0_66_type 1231
301#define _loop1_67_type 1232
302#define _loop1_68_type 1233
303#define _tmp_69_type 1234
304#define _loop1_70_type 1235
305#define _loop0_72_type 1236
306#define _gather_71_type 1237
307#define _loop1_73_type 1238
308#define _loop0_74_type 1239
309#define _loop0_75_type 1240
310#define _loop0_76_type 1241
311#define _loop1_77_type 1242
312#define _loop0_78_type 1243
313#define _loop1_79_type 1244
314#define _loop1_80_type 1245
315#define _loop1_81_type 1246
316#define _loop0_82_type 1247
317#define _loop1_83_type 1248
318#define _loop0_84_type 1249
319#define _loop1_85_type 1250
320#define _loop0_86_type 1251
321#define _loop1_87_type 1252
322#define _loop1_88_type 1253
323#define _loop1_89_type 1254
324#define _loop1_90_type 1255
325#define _tmp_91_type 1256
326#define _loop0_93_type 1257
327#define _gather_92_type 1258
328#define _tmp_94_type 1259
329#define _tmp_95_type 1260
330#define _tmp_96_type 1261
331#define _tmp_97_type 1262
332#define _loop1_98_type 1263
333#define _tmp_99_type 1264
334#define _tmp_100_type 1265
335#define _loop0_102_type 1266
336#define _gather_101_type 1267
337#define _loop1_103_type 1268
338#define _loop0_104_type 1269
339#define _loop0_105_type 1270
340#define _loop0_107_type 1271
341#define _gather_106_type 1272
342#define _tmp_108_type 1273
343#define _loop0_110_type 1274
344#define _gather_109_type 1275
345#define _loop0_112_type 1276
346#define _gather_111_type 1277
347#define _loop0_114_type 1278
348#define _gather_113_type 1279
349#define _loop0_116_type 1280
350#define _gather_115_type 1281
351#define _loop0_117_type 1282
352#define _loop0_119_type 1283
353#define _gather_118_type 1284
354#define _loop1_120_type 1285
355#define _tmp_121_type 1286
356#define _loop0_123_type 1287
357#define _gather_122_type 1288
358#define _loop0_125_type 1289
359#define _gather_124_type 1290
360#define _tmp_126_type 1291
361#define _loop0_127_type 1292
362#define _loop0_128_type 1293
363#define _loop0_129_type 1294
364#define _tmp_130_type 1295
365#define _tmp_131_type 1296
366#define _tmp_132_type 1297
367#define _loop0_133_type 1298
368#define _loop1_134_type 1299
369#define _loop0_135_type 1300
370#define _loop1_136_type 1301
371#define _tmp_137_type 1302
372#define _tmp_138_type 1303
373#define _tmp_139_type 1304
374#define _loop0_141_type 1305
375#define _gather_140_type 1306
376#define _loop0_143_type 1307
377#define _gather_142_type 1308
378#define _tmp_144_type 1309
379#define _tmp_145_type 1310
380#define _tmp_146_type 1311
381#define _tmp_147_type 1312
382#define _tmp_148_type 1313
383#define _tmp_149_type 1314
384#define _tmp_150_type 1315
385#define _tmp_151_type 1316
386#define _tmp_152_type 1317
387#define _tmp_153_type 1318
388#define _tmp_154_type 1319
389#define _tmp_155_type 1320
390#define _tmp_156_type 1321
391#define _tmp_157_type 1322
392#define _tmp_158_type 1323
393#define _tmp_159_type 1324
394#define _tmp_160_type 1325
395#define _tmp_161_type 1326
396#define _tmp_162_type 1327
397#define _tmp_163_type 1328
398#define _tmp_164_type 1329
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100399
400static mod_ty file_rule(Parser *p);
401static mod_ty interactive_rule(Parser *p);
402static mod_ty eval_rule(Parser *p);
403static mod_ty func_type_rule(Parser *p);
404static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100405static asdl_expr_seq* type_expressions_rule(Parser *p);
406static asdl_stmt_seq* statements_rule(Parser *p);
407static asdl_stmt_seq* statement_rule(Parser *p);
408static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000409static asdl_stmt_seq* simple_stmts_rule(Parser *p);
410static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100411static stmt_ty compound_stmt_rule(Parser *p);
412static stmt_ty assignment_rule(Parser *p);
413static AugOperator* augassign_rule(Parser *p);
414static stmt_ty global_stmt_rule(Parser *p);
415static stmt_ty nonlocal_stmt_rule(Parser *p);
416static stmt_ty yield_stmt_rule(Parser *p);
417static stmt_ty assert_stmt_rule(Parser *p);
418static stmt_ty del_stmt_rule(Parser *p);
419static stmt_ty import_stmt_rule(Parser *p);
420static stmt_ty import_name_rule(Parser *p);
421static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100422static asdl_alias_seq* import_from_targets_rule(Parser *p);
423static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100424static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100425static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100426static alias_ty dotted_as_name_rule(Parser *p);
427static expr_ty dotted_name_rule(Parser *p);
428static stmt_ty if_stmt_rule(Parser *p);
429static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100430static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100431static stmt_ty while_stmt_rule(Parser *p);
432static stmt_ty for_stmt_rule(Parser *p);
433static stmt_ty with_stmt_rule(Parser *p);
434static withitem_ty with_item_rule(Parser *p);
435static stmt_ty try_stmt_rule(Parser *p);
436static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100437static asdl_stmt_seq* finally_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100438static stmt_ty return_stmt_rule(Parser *p);
439static stmt_ty raise_stmt_rule(Parser *p);
440static stmt_ty function_def_rule(Parser *p);
441static stmt_ty function_def_raw_rule(Parser *p);
442static Token* func_type_comment_rule(Parser *p);
443static arguments_ty params_rule(Parser *p);
444static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100445static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100446static SlashWithDefault* slash_with_default_rule(Parser *p);
447static StarEtc* star_etc_rule(Parser *p);
448static arg_ty kwds_rule(Parser *p);
449static arg_ty param_no_default_rule(Parser *p);
450static NameDefaultPair* param_with_default_rule(Parser *p);
451static NameDefaultPair* param_maybe_default_rule(Parser *p);
452static arg_ty param_rule(Parser *p);
453static expr_ty annotation_rule(Parser *p);
454static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100455static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100456static stmt_ty class_def_rule(Parser *p);
457static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100458static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100459static expr_ty star_expressions_rule(Parser *p);
460static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100461static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100462static expr_ty star_named_expression_rule(Parser *p);
463static expr_ty named_expression_rule(Parser *p);
464static expr_ty annotated_rhs_rule(Parser *p);
465static expr_ty expressions_rule(Parser *p);
466static expr_ty expression_rule(Parser *p);
467static expr_ty lambdef_rule(Parser *p);
468static arguments_ty lambda_params_rule(Parser *p);
469static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100470static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100471static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
472static StarEtc* lambda_star_etc_rule(Parser *p);
473static arg_ty lambda_kwds_rule(Parser *p);
474static arg_ty lambda_param_no_default_rule(Parser *p);
475static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
476static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
477static arg_ty lambda_param_rule(Parser *p);
478static expr_ty disjunction_rule(Parser *p);
479static expr_ty conjunction_rule(Parser *p);
480static expr_ty inversion_rule(Parser *p);
481static expr_ty comparison_rule(Parser *p);
482static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
483static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
484static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
485static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
486static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
487static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
488static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
489static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
490static CmpopExprPair* in_bitwise_or_rule(Parser *p);
491static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
492static CmpopExprPair* is_bitwise_or_rule(Parser *p);
493static expr_ty bitwise_or_rule(Parser *p);
494static expr_ty bitwise_xor_rule(Parser *p);
495static expr_ty bitwise_and_rule(Parser *p);
496static expr_ty shift_expr_rule(Parser *p);
497static expr_ty sum_rule(Parser *p);
498static expr_ty term_rule(Parser *p);
499static expr_ty factor_rule(Parser *p);
500static expr_ty power_rule(Parser *p);
501static expr_ty await_primary_rule(Parser *p);
502static expr_ty primary_rule(Parser *p);
503static expr_ty slices_rule(Parser *p);
504static expr_ty slice_rule(Parser *p);
505static expr_ty atom_rule(Parser *p);
506static expr_ty strings_rule(Parser *p);
507static expr_ty list_rule(Parser *p);
508static expr_ty listcomp_rule(Parser *p);
509static expr_ty tuple_rule(Parser *p);
510static expr_ty group_rule(Parser *p);
511static expr_ty genexp_rule(Parser *p);
512static expr_ty set_rule(Parser *p);
513static expr_ty setcomp_rule(Parser *p);
514static expr_ty dict_rule(Parser *p);
515static expr_ty dictcomp_rule(Parser *p);
516static asdl_seq* double_starred_kvpairs_rule(Parser *p);
517static KeyValuePair* double_starred_kvpair_rule(Parser *p);
518static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100519static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100520static comprehension_ty for_if_clause_rule(Parser *p);
521static expr_ty yield_expr_rule(Parser *p);
522static expr_ty arguments_rule(Parser *p);
523static expr_ty args_rule(Parser *p);
524static asdl_seq* kwargs_rule(Parser *p);
525static expr_ty starred_expression_rule(Parser *p);
526static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
527static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
528static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200529static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
530static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100531static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200532static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100533static expr_ty star_atom_rule(Parser *p);
534static expr_ty single_target_rule(Parser *p);
535static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100536static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100537static expr_ty del_target_rule(Parser *p);
538static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100539static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100540static expr_ty target_rule(Parser *p);
541static expr_ty t_primary_rule(Parser *p);
542static void *t_lookahead_rule(Parser *p);
543static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200544static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100545static void *invalid_kwarg_rule(Parser *p);
546static void *invalid_named_expression_rule(Parser *p);
547static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300548static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300549static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100550static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200551static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100552static void *invalid_comprehension_rule(Parser *p);
553static void *invalid_dict_comprehension_rule(Parser *p);
554static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200555static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100556static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200557static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100558static void *invalid_star_etc_rule(Parser *p);
559static void *invalid_lambda_star_etc_rule(Parser *p);
560static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300561static void *invalid_with_item_rule(Parser *p);
562static void *invalid_for_target_rule(Parser *p);
563static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100564static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000565static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100566static asdl_seq *_loop0_1_rule(Parser *p);
567static asdl_seq *_loop0_2_rule(Parser *p);
568static asdl_seq *_loop0_4_rule(Parser *p);
569static asdl_seq *_gather_3_rule(Parser *p);
570static asdl_seq *_loop0_6_rule(Parser *p);
571static asdl_seq *_gather_5_rule(Parser *p);
572static asdl_seq *_loop0_8_rule(Parser *p);
573static asdl_seq *_gather_7_rule(Parser *p);
574static asdl_seq *_loop0_10_rule(Parser *p);
575static asdl_seq *_gather_9_rule(Parser *p);
576static asdl_seq *_loop1_11_rule(Parser *p);
577static asdl_seq *_loop0_13_rule(Parser *p);
578static asdl_seq *_gather_12_rule(Parser *p);
579static void *_tmp_14_rule(Parser *p);
580static void *_tmp_15_rule(Parser *p);
581static void *_tmp_16_rule(Parser *p);
582static void *_tmp_17_rule(Parser *p);
583static void *_tmp_18_rule(Parser *p);
584static void *_tmp_19_rule(Parser *p);
585static void *_tmp_20_rule(Parser *p);
586static void *_tmp_21_rule(Parser *p);
587static asdl_seq *_loop1_22_rule(Parser *p);
588static void *_tmp_23_rule(Parser *p);
589static void *_tmp_24_rule(Parser *p);
590static asdl_seq *_loop0_26_rule(Parser *p);
591static asdl_seq *_gather_25_rule(Parser *p);
592static asdl_seq *_loop0_28_rule(Parser *p);
593static asdl_seq *_gather_27_rule(Parser *p);
594static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300595static void *_tmp_30_rule(Parser *p);
596static asdl_seq *_loop0_31_rule(Parser *p);
597static asdl_seq *_loop1_32_rule(Parser *p);
598static asdl_seq *_loop0_34_rule(Parser *p);
599static asdl_seq *_gather_33_rule(Parser *p);
600static void *_tmp_35_rule(Parser *p);
601static asdl_seq *_loop0_37_rule(Parser *p);
602static asdl_seq *_gather_36_rule(Parser *p);
603static void *_tmp_38_rule(Parser *p);
604static asdl_seq *_loop0_40_rule(Parser *p);
605static asdl_seq *_gather_39_rule(Parser *p);
606static asdl_seq *_loop0_42_rule(Parser *p);
607static asdl_seq *_gather_41_rule(Parser *p);
608static asdl_seq *_loop0_44_rule(Parser *p);
609static asdl_seq *_gather_43_rule(Parser *p);
610static asdl_seq *_loop0_46_rule(Parser *p);
611static asdl_seq *_gather_45_rule(Parser *p);
612static void *_tmp_47_rule(Parser *p);
613static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100614static void *_tmp_49_rule(Parser *p);
615static void *_tmp_50_rule(Parser *p);
616static void *_tmp_51_rule(Parser *p);
617static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300618static void *_tmp_53_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100619static asdl_seq *_loop0_54_rule(Parser *p);
620static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300621static asdl_seq *_loop0_56_rule(Parser *p);
622static asdl_seq *_loop1_57_rule(Parser *p);
623static asdl_seq *_loop0_58_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100624static asdl_seq *_loop1_59_rule(Parser *p);
625static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300626static asdl_seq *_loop1_61_rule(Parser *p);
627static asdl_seq *_loop0_62_rule(Parser *p);
628static asdl_seq *_loop1_63_rule(Parser *p);
629static asdl_seq *_loop0_64_rule(Parser *p);
630static asdl_seq *_loop1_65_rule(Parser *p);
631static asdl_seq *_loop0_66_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100632static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300633static asdl_seq *_loop1_68_rule(Parser *p);
634static void *_tmp_69_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000635static asdl_seq *_loop1_70_rule(Parser *p);
636static asdl_seq *_loop0_72_rule(Parser *p);
637static asdl_seq *_gather_71_rule(Parser *p);
638static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300639static asdl_seq *_loop0_74_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000640static asdl_seq *_loop0_75_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100641static asdl_seq *_loop0_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000642static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300643static asdl_seq *_loop0_78_rule(Parser *p);
644static asdl_seq *_loop1_79_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000645static asdl_seq *_loop1_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100646static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000647static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300648static asdl_seq *_loop1_83_rule(Parser *p);
649static asdl_seq *_loop0_84_rule(Parser *p);
650static asdl_seq *_loop1_85_rule(Parser *p);
651static asdl_seq *_loop0_86_rule(Parser *p);
652static asdl_seq *_loop1_87_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000653static asdl_seq *_loop1_88_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100654static asdl_seq *_loop1_89_rule(Parser *p);
655static asdl_seq *_loop1_90_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000656static void *_tmp_91_rule(Parser *p);
657static asdl_seq *_loop0_93_rule(Parser *p);
658static asdl_seq *_gather_92_rule(Parser *p);
659static void *_tmp_94_rule(Parser *p);
660static void *_tmp_95_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100661static void *_tmp_96_rule(Parser *p);
662static void *_tmp_97_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000663static asdl_seq *_loop1_98_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300664static void *_tmp_99_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000665static void *_tmp_100_rule(Parser *p);
666static asdl_seq *_loop0_102_rule(Parser *p);
667static asdl_seq *_gather_101_rule(Parser *p);
668static asdl_seq *_loop1_103_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300669static asdl_seq *_loop0_104_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000670static asdl_seq *_loop0_105_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300671static asdl_seq *_loop0_107_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000672static asdl_seq *_gather_106_rule(Parser *p);
673static void *_tmp_108_rule(Parser *p);
674static asdl_seq *_loop0_110_rule(Parser *p);
675static asdl_seq *_gather_109_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100676static asdl_seq *_loop0_112_rule(Parser *p);
677static asdl_seq *_gather_111_rule(Parser *p);
678static asdl_seq *_loop0_114_rule(Parser *p);
679static asdl_seq *_gather_113_rule(Parser *p);
680static asdl_seq *_loop0_116_rule(Parser *p);
681static asdl_seq *_gather_115_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000682static asdl_seq *_loop0_117_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100683static asdl_seq *_loop0_119_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000684static asdl_seq *_gather_118_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200685static asdl_seq *_loop1_120_rule(Parser *p);
686static void *_tmp_121_rule(Parser *p);
687static asdl_seq *_loop0_123_rule(Parser *p);
688static asdl_seq *_gather_122_rule(Parser *p);
689static asdl_seq *_loop0_125_rule(Parser *p);
690static asdl_seq *_gather_124_rule(Parser *p);
691static void *_tmp_126_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000692static asdl_seq *_loop0_127_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300693static asdl_seq *_loop0_128_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200694static asdl_seq *_loop0_129_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000695static void *_tmp_130_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200696static void *_tmp_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000697static void *_tmp_132_rule(Parser *p);
698static asdl_seq *_loop0_133_rule(Parser *p);
699static asdl_seq *_loop1_134_rule(Parser *p);
700static asdl_seq *_loop0_135_rule(Parser *p);
701static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100702static void *_tmp_137_rule(Parser *p);
703static void *_tmp_138_rule(Parser *p);
704static void *_tmp_139_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000705static asdl_seq *_loop0_141_rule(Parser *p);
706static asdl_seq *_gather_140_rule(Parser *p);
707static asdl_seq *_loop0_143_rule(Parser *p);
708static asdl_seq *_gather_142_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100709static void *_tmp_144_rule(Parser *p);
710static void *_tmp_145_rule(Parser *p);
711static void *_tmp_146_rule(Parser *p);
712static void *_tmp_147_rule(Parser *p);
713static void *_tmp_148_rule(Parser *p);
714static void *_tmp_149_rule(Parser *p);
715static void *_tmp_150_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200716static void *_tmp_151_rule(Parser *p);
717static void *_tmp_152_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200718static void *_tmp_153_rule(Parser *p);
719static void *_tmp_154_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000720static void *_tmp_155_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000721static void *_tmp_156_rule(Parser *p);
722static void *_tmp_157_rule(Parser *p);
723static void *_tmp_158_rule(Parser *p);
724static void *_tmp_159_rule(Parser *p);
725static void *_tmp_160_rule(Parser *p);
726static void *_tmp_161_rule(Parser *p);
727static void *_tmp_162_rule(Parser *p);
728static void *_tmp_163_rule(Parser *p);
729static void *_tmp_164_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000730
731
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100732// file: statements? $
733static mod_ty
734file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000735{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100736 D(p->level++);
737 if (p->error_indicator) {
738 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000739 return NULL;
740 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100741 mod_ty _res = NULL;
742 int _mark = p->mark;
743 { // statements? $
744 if (p->error_indicator) {
745 D(p->level--);
746 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000747 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100748 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
749 void *a;
750 Token * endmarker_var;
751 if (
752 (a = statements_rule(p), 1) // statements?
753 &&
754 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
755 )
756 {
757 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
758 _res = _PyPegen_make_module ( p , a );
759 if (_res == NULL && PyErr_Occurred()) {
760 p->error_indicator = 1;
761 D(p->level--);
762 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000763 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100764 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000765 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100766 p->mark = _mark;
767 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000769 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100770 _res = NULL;
771 done:
772 D(p->level--);
773 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000774}
775
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100776// interactive: statement_newline
777static mod_ty
778interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000779{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100780 D(p->level++);
781 if (p->error_indicator) {
782 D(p->level--);
783 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000784 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100785 mod_ty _res = NULL;
786 int _mark = p->mark;
787 { // statement_newline
788 if (p->error_indicator) {
789 D(p->level--);
790 return NULL;
791 }
792 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100793 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100794 if (
795 (a = statement_newline_rule(p)) // statement_newline
796 )
797 {
798 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
799 _res = Interactive ( a , p -> arena );
800 if (_res == NULL && PyErr_Occurred()) {
801 p->error_indicator = 1;
802 D(p->level--);
803 return NULL;
804 }
805 goto done;
806 }
807 p->mark = _mark;
808 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
810 }
811 _res = NULL;
812 done:
813 D(p->level--);
814 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000815}
816
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100817// eval: expressions NEWLINE* $
818static mod_ty
819eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000820{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100821 D(p->level++);
822 if (p->error_indicator) {
823 D(p->level--);
824 return NULL;
825 }
826 mod_ty _res = NULL;
827 int _mark = p->mark;
828 { // expressions NEWLINE* $
829 if (p->error_indicator) {
830 D(p->level--);
831 return NULL;
832 }
833 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
834 asdl_seq * _loop0_1_var;
835 expr_ty a;
836 Token * endmarker_var;
837 if (
838 (a = expressions_rule(p)) // expressions
839 &&
840 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
841 &&
842 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
843 )
844 {
845 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
846 _res = Expression ( a , p -> arena );
847 if (_res == NULL && PyErr_Occurred()) {
848 p->error_indicator = 1;
849 D(p->level--);
850 return NULL;
851 }
852 goto done;
853 }
854 p->mark = _mark;
855 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
857 }
858 _res = NULL;
859 done:
860 D(p->level--);
861 return _res;
862}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000863
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100864// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
865static mod_ty
866func_type_rule(Parser *p)
867{
868 D(p->level++);
869 if (p->error_indicator) {
870 D(p->level--);
871 return NULL;
872 }
873 mod_ty _res = NULL;
874 int _mark = p->mark;
875 { // '(' type_expressions? ')' '->' expression NEWLINE* $
876 if (p->error_indicator) {
877 D(p->level--);
878 return NULL;
879 }
880 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
881 Token * _literal;
882 Token * _literal_1;
883 Token * _literal_2;
884 asdl_seq * _loop0_2_var;
885 void *a;
886 expr_ty b;
887 Token * endmarker_var;
888 if (
889 (_literal = _PyPegen_expect_token(p, 7)) // token='('
890 &&
891 (a = type_expressions_rule(p), 1) // type_expressions?
892 &&
893 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
894 &&
895 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
896 &&
897 (b = expression_rule(p)) // expression
898 &&
899 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
900 &&
901 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
902 )
903 {
904 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
905 _res = FunctionType ( a , b , p -> arena );
906 if (_res == NULL && PyErr_Occurred()) {
907 p->error_indicator = 1;
908 D(p->level--);
909 return NULL;
910 }
911 goto done;
912 }
913 p->mark = _mark;
914 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
916 }
917 _res = NULL;
918 done:
919 D(p->level--);
920 return _res;
921}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000922
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100923// fstring: star_expressions
924static expr_ty
925fstring_rule(Parser *p)
926{
927 D(p->level++);
928 if (p->error_indicator) {
929 D(p->level--);
930 return NULL;
931 }
932 expr_ty _res = NULL;
933 int _mark = p->mark;
934 { // star_expressions
935 if (p->error_indicator) {
936 D(p->level--);
937 return NULL;
938 }
939 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
940 expr_ty star_expressions_var;
941 if (
942 (star_expressions_var = star_expressions_rule(p)) // star_expressions
943 )
944 {
945 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
946 _res = star_expressions_var;
947 goto done;
948 }
949 p->mark = _mark;
950 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
952 }
953 _res = NULL;
954 done:
955 D(p->level--);
956 return _res;
957}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000958
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100959// type_expressions:
960// | ','.expression+ ',' '*' expression ',' '**' expression
961// | ','.expression+ ',' '*' expression
962// | ','.expression+ ',' '**' expression
963// | '*' expression ',' '**' expression
964// | '*' expression
965// | '**' expression
966// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +0100967static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100968type_expressions_rule(Parser *p)
969{
970 D(p->level++);
971 if (p->error_indicator) {
972 D(p->level--);
973 return NULL;
974 }
Pablo Galindoa5634c42020-09-16 19:42:00 +0100975 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100976 int _mark = p->mark;
977 { // ','.expression+ ',' '*' expression ',' '**' expression
978 if (p->error_indicator) {
979 D(p->level--);
980 return NULL;
981 }
982 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
983 Token * _literal;
984 Token * _literal_1;
985 Token * _literal_2;
986 Token * _literal_3;
987 asdl_seq * a;
988 expr_ty b;
989 expr_ty c;
990 if (
991 (a = _gather_3_rule(p)) // ','.expression+
992 &&
993 (_literal = _PyPegen_expect_token(p, 12)) // token=','
994 &&
995 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
996 &&
997 (b = expression_rule(p)) // expression
998 &&
999 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1000 &&
1001 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1002 &&
1003 (c = expression_rule(p)) // expression
1004 )
1005 {
1006 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001007 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq * , _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001008 if (_res == NULL && PyErr_Occurred()) {
1009 p->error_indicator = 1;
1010 D(p->level--);
1011 return NULL;
1012 }
1013 goto done;
1014 }
1015 p->mark = _mark;
1016 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1018 }
1019 { // ','.expression+ ',' '*' expression
1020 if (p->error_indicator) {
1021 D(p->level--);
1022 return NULL;
1023 }
1024 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1025 Token * _literal;
1026 Token * _literal_1;
1027 asdl_seq * a;
1028 expr_ty b;
1029 if (
1030 (a = _gather_5_rule(p)) // ','.expression+
1031 &&
1032 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1033 &&
1034 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1035 &&
1036 (b = expression_rule(p)) // expression
1037 )
1038 {
1039 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001040 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001041 if (_res == NULL && PyErr_Occurred()) {
1042 p->error_indicator = 1;
1043 D(p->level--);
1044 return NULL;
1045 }
1046 goto done;
1047 }
1048 p->mark = _mark;
1049 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1051 }
1052 { // ','.expression+ ',' '**' expression
1053 if (p->error_indicator) {
1054 D(p->level--);
1055 return NULL;
1056 }
1057 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1058 Token * _literal;
1059 Token * _literal_1;
1060 asdl_seq * a;
1061 expr_ty b;
1062 if (
1063 (a = _gather_7_rule(p)) // ','.expression+
1064 &&
1065 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1066 &&
1067 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1068 &&
1069 (b = expression_rule(p)) // expression
1070 )
1071 {
1072 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001073 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001074 if (_res == NULL && PyErr_Occurred()) {
1075 p->error_indicator = 1;
1076 D(p->level--);
1077 return NULL;
1078 }
1079 goto done;
1080 }
1081 p->mark = _mark;
1082 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1084 }
1085 { // '*' expression ',' '**' expression
1086 if (p->error_indicator) {
1087 D(p->level--);
1088 return NULL;
1089 }
1090 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1091 Token * _literal;
1092 Token * _literal_1;
1093 Token * _literal_2;
1094 expr_ty a;
1095 expr_ty b;
1096 if (
1097 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1098 &&
1099 (a = expression_rule(p)) // expression
1100 &&
1101 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1102 &&
1103 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1104 &&
1105 (b = expression_rule(p)) // expression
1106 )
1107 {
1108 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001109 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq * , _PyPegen_singleton_seq ( p , a ) ) , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001110 if (_res == NULL && PyErr_Occurred()) {
1111 p->error_indicator = 1;
1112 D(p->level--);
1113 return NULL;
1114 }
1115 goto done;
1116 }
1117 p->mark = _mark;
1118 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1120 }
1121 { // '*' expression
1122 if (p->error_indicator) {
1123 D(p->level--);
1124 return NULL;
1125 }
1126 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1127 Token * _literal;
1128 expr_ty a;
1129 if (
1130 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1131 &&
1132 (a = expression_rule(p)) // expression
1133 )
1134 {
1135 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001136 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001137 if (_res == NULL && PyErr_Occurred()) {
1138 p->error_indicator = 1;
1139 D(p->level--);
1140 return NULL;
1141 }
1142 goto done;
1143 }
1144 p->mark = _mark;
1145 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1147 }
1148 { // '**' expression
1149 if (p->error_indicator) {
1150 D(p->level--);
1151 return NULL;
1152 }
1153 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1154 Token * _literal;
1155 expr_ty a;
1156 if (
1157 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1158 &&
1159 (a = expression_rule(p)) // expression
1160 )
1161 {
1162 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001163 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001164 if (_res == NULL && PyErr_Occurred()) {
1165 p->error_indicator = 1;
1166 D(p->level--);
1167 return NULL;
1168 }
1169 goto done;
1170 }
1171 p->mark = _mark;
1172 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1174 }
1175 { // ','.expression+
1176 if (p->error_indicator) {
1177 D(p->level--);
1178 return NULL;
1179 }
1180 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001181 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001182 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001183 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001184 )
1185 {
1186 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001187 _res = a;
1188 if (_res == NULL && PyErr_Occurred()) {
1189 p->error_indicator = 1;
1190 D(p->level--);
1191 return NULL;
1192 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001193 goto done;
1194 }
1195 p->mark = _mark;
1196 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1198 }
1199 _res = NULL;
1200 done:
1201 D(p->level--);
1202 return _res;
1203}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001204
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001205// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001206static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001207statements_rule(Parser *p)
1208{
1209 D(p->level++);
1210 if (p->error_indicator) {
1211 D(p->level--);
1212 return NULL;
1213 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001214 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001215 int _mark = p->mark;
1216 { // statement+
1217 if (p->error_indicator) {
1218 D(p->level--);
1219 return NULL;
1220 }
1221 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1222 asdl_seq * a;
1223 if (
1224 (a = _loop1_11_rule(p)) // statement+
1225 )
1226 {
1227 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001228 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001229 if (_res == NULL && PyErr_Occurred()) {
1230 p->error_indicator = 1;
1231 D(p->level--);
1232 return NULL;
1233 }
1234 goto done;
1235 }
1236 p->mark = _mark;
1237 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1239 }
1240 _res = NULL;
1241 done:
1242 D(p->level--);
1243 return _res;
1244}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001245
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001246// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001247static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001248statement_rule(Parser *p)
1249{
1250 D(p->level++);
1251 if (p->error_indicator) {
1252 D(p->level--);
1253 return NULL;
1254 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001255 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001256 int _mark = p->mark;
1257 { // compound_stmt
1258 if (p->error_indicator) {
1259 D(p->level--);
1260 return NULL;
1261 }
1262 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1263 stmt_ty a;
1264 if (
1265 (a = compound_stmt_rule(p)) // compound_stmt
1266 )
1267 {
1268 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001269 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001270 if (_res == NULL && PyErr_Occurred()) {
1271 p->error_indicator = 1;
1272 D(p->level--);
1273 return NULL;
1274 }
1275 goto done;
1276 }
1277 p->mark = _mark;
1278 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1280 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001281 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001282 if (p->error_indicator) {
1283 D(p->level--);
1284 return NULL;
1285 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001286 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001287 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001288 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001289 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001290 )
1291 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001292 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001293 _res = a;
1294 if (_res == NULL && PyErr_Occurred()) {
1295 p->error_indicator = 1;
1296 D(p->level--);
1297 return NULL;
1298 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001299 goto done;
1300 }
1301 p->mark = _mark;
1302 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001304 }
1305 _res = NULL;
1306 done:
1307 D(p->level--);
1308 return _res;
1309}
1310
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001311// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001312static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001313statement_newline_rule(Parser *p)
1314{
1315 D(p->level++);
1316 if (p->error_indicator) {
1317 D(p->level--);
1318 return NULL;
1319 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001320 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001321 int _mark = p->mark;
1322 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1323 p->error_indicator = 1;
1324 D(p->level--);
1325 return NULL;
1326 }
1327 int _start_lineno = p->tokens[_mark]->lineno;
1328 UNUSED(_start_lineno); // Only used by EXTRA macro
1329 int _start_col_offset = p->tokens[_mark]->col_offset;
1330 UNUSED(_start_col_offset); // Only used by EXTRA macro
1331 { // compound_stmt NEWLINE
1332 if (p->error_indicator) {
1333 D(p->level--);
1334 return NULL;
1335 }
1336 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1337 stmt_ty a;
1338 Token * newline_var;
1339 if (
1340 (a = compound_stmt_rule(p)) // compound_stmt
1341 &&
1342 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1343 )
1344 {
1345 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001346 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001347 if (_res == NULL && PyErr_Occurred()) {
1348 p->error_indicator = 1;
1349 D(p->level--);
1350 return NULL;
1351 }
1352 goto done;
1353 }
1354 p->mark = _mark;
1355 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1357 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001358 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001359 if (p->error_indicator) {
1360 D(p->level--);
1361 return NULL;
1362 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001363 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1364 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001365 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001366 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001367 )
1368 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001369 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1370 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001371 goto done;
1372 }
1373 p->mark = _mark;
1374 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001376 }
1377 { // NEWLINE
1378 if (p->error_indicator) {
1379 D(p->level--);
1380 return NULL;
1381 }
1382 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1383 Token * newline_var;
1384 if (
1385 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1386 )
1387 {
1388 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1389 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1390 if (_token == NULL) {
1391 D(p->level--);
1392 return NULL;
1393 }
1394 int _end_lineno = _token->end_lineno;
1395 UNUSED(_end_lineno); // Only used by EXTRA macro
1396 int _end_col_offset = _token->end_col_offset;
1397 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001398 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _Py_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001399 if (_res == NULL && PyErr_Occurred()) {
1400 p->error_indicator = 1;
1401 D(p->level--);
1402 return NULL;
1403 }
1404 goto done;
1405 }
1406 p->mark = _mark;
1407 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1409 }
1410 { // $
1411 if (p->error_indicator) {
1412 D(p->level--);
1413 return NULL;
1414 }
1415 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1416 Token * endmarker_var;
1417 if (
1418 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1419 )
1420 {
1421 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1422 _res = _PyPegen_interactive_exit ( p );
1423 if (_res == NULL && PyErr_Occurred()) {
1424 p->error_indicator = 1;
1425 D(p->level--);
1426 return NULL;
1427 }
1428 goto done;
1429 }
1430 p->mark = _mark;
1431 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1433 }
1434 _res = NULL;
1435 done:
1436 D(p->level--);
1437 return _res;
1438}
1439
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001440// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001441static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001442simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001443{
1444 D(p->level++);
1445 if (p->error_indicator) {
1446 D(p->level--);
1447 return NULL;
1448 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001449 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001450 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001451 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001452 if (p->error_indicator) {
1453 D(p->level--);
1454 return NULL;
1455 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001456 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001457 stmt_ty a;
1458 Token * newline_var;
1459 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001460 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001461 &&
1462 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1463 &&
1464 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1465 )
1466 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001467 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001468 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001469 if (_res == NULL && PyErr_Occurred()) {
1470 p->error_indicator = 1;
1471 D(p->level--);
1472 return NULL;
1473 }
1474 goto done;
1475 }
1476 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001477 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001479 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001480 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001481 if (p->error_indicator) {
1482 D(p->level--);
1483 return NULL;
1484 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001485 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001486 void *_opt_var;
1487 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001488 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001489 Token * newline_var;
1490 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001491 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001492 &&
1493 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1494 &&
1495 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1496 )
1497 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001498 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001499 _res = a;
1500 if (_res == NULL && PyErr_Occurred()) {
1501 p->error_indicator = 1;
1502 D(p->level--);
1503 return NULL;
1504 }
1505 goto done;
1506 }
1507 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001508 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001510 }
1511 _res = NULL;
1512 done:
1513 D(p->level--);
1514 return _res;
1515}
1516
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001517// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001518// | assignment
1519// | star_expressions
1520// | &'return' return_stmt
1521// | &('import' | 'from') import_stmt
1522// | &'raise' raise_stmt
1523// | 'pass'
1524// | &'del' del_stmt
1525// | &'yield' yield_stmt
1526// | &'assert' assert_stmt
1527// | 'break'
1528// | 'continue'
1529// | &'global' global_stmt
1530// | &'nonlocal' nonlocal_stmt
1531static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001532simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001533{
1534 D(p->level++);
1535 if (p->error_indicator) {
1536 D(p->level--);
1537 return NULL;
1538 }
1539 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001540 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001541 D(p->level--);
1542 return _res;
1543 }
1544 int _mark = p->mark;
1545 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1546 p->error_indicator = 1;
1547 D(p->level--);
1548 return NULL;
1549 }
1550 int _start_lineno = p->tokens[_mark]->lineno;
1551 UNUSED(_start_lineno); // Only used by EXTRA macro
1552 int _start_col_offset = p->tokens[_mark]->col_offset;
1553 UNUSED(_start_col_offset); // Only used by EXTRA macro
1554 { // assignment
1555 if (p->error_indicator) {
1556 D(p->level--);
1557 return NULL;
1558 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001559 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001560 stmt_ty assignment_var;
1561 if (
1562 (assignment_var = assignment_rule(p)) // assignment
1563 )
1564 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001565 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001566 _res = assignment_var;
1567 goto done;
1568 }
1569 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001570 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1572 }
1573 { // star_expressions
1574 if (p->error_indicator) {
1575 D(p->level--);
1576 return NULL;
1577 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001578 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001579 expr_ty e;
1580 if (
1581 (e = star_expressions_rule(p)) // star_expressions
1582 )
1583 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001584 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001585 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1586 if (_token == NULL) {
1587 D(p->level--);
1588 return NULL;
1589 }
1590 int _end_lineno = _token->end_lineno;
1591 UNUSED(_end_lineno); // Only used by EXTRA macro
1592 int _end_col_offset = _token->end_col_offset;
1593 UNUSED(_end_col_offset); // Only used by EXTRA macro
1594 _res = _Py_Expr ( e , EXTRA );
1595 if (_res == NULL && PyErr_Occurred()) {
1596 p->error_indicator = 1;
1597 D(p->level--);
1598 return NULL;
1599 }
1600 goto done;
1601 }
1602 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001603 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1605 }
1606 { // &'return' return_stmt
1607 if (p->error_indicator) {
1608 D(p->level--);
1609 return NULL;
1610 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001611 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001612 stmt_ty return_stmt_var;
1613 if (
1614 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1615 &&
1616 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1617 )
1618 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001619 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001620 _res = return_stmt_var;
1621 goto done;
1622 }
1623 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001624 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1626 }
1627 { // &('import' | 'from') import_stmt
1628 if (p->error_indicator) {
1629 D(p->level--);
1630 return NULL;
1631 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001632 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001633 stmt_ty import_stmt_var;
1634 if (
1635 _PyPegen_lookahead(1, _tmp_14_rule, p)
1636 &&
1637 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1638 )
1639 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001640 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001641 _res = import_stmt_var;
1642 goto done;
1643 }
1644 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001645 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1647 }
1648 { // &'raise' raise_stmt
1649 if (p->error_indicator) {
1650 D(p->level--);
1651 return NULL;
1652 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001653 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001654 stmt_ty raise_stmt_var;
1655 if (
1656 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1657 &&
1658 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1659 )
1660 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001661 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001662 _res = raise_stmt_var;
1663 goto done;
1664 }
1665 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001666 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1668 }
1669 { // 'pass'
1670 if (p->error_indicator) {
1671 D(p->level--);
1672 return NULL;
1673 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001674 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001675 Token * _keyword;
1676 if (
1677 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1678 )
1679 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001680 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001681 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1682 if (_token == NULL) {
1683 D(p->level--);
1684 return NULL;
1685 }
1686 int _end_lineno = _token->end_lineno;
1687 UNUSED(_end_lineno); // Only used by EXTRA macro
1688 int _end_col_offset = _token->end_col_offset;
1689 UNUSED(_end_col_offset); // Only used by EXTRA macro
1690 _res = _Py_Pass ( EXTRA );
1691 if (_res == NULL && PyErr_Occurred()) {
1692 p->error_indicator = 1;
1693 D(p->level--);
1694 return NULL;
1695 }
1696 goto done;
1697 }
1698 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001699 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1701 }
1702 { // &'del' del_stmt
1703 if (p->error_indicator) {
1704 D(p->level--);
1705 return NULL;
1706 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001707 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001708 stmt_ty del_stmt_var;
1709 if (
1710 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1711 &&
1712 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1713 )
1714 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001715 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001716 _res = del_stmt_var;
1717 goto done;
1718 }
1719 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001720 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1722 }
1723 { // &'yield' yield_stmt
1724 if (p->error_indicator) {
1725 D(p->level--);
1726 return NULL;
1727 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001728 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001729 stmt_ty yield_stmt_var;
1730 if (
1731 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1732 &&
1733 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1734 )
1735 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001736 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001737 _res = yield_stmt_var;
1738 goto done;
1739 }
1740 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001741 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1743 }
1744 { // &'assert' assert_stmt
1745 if (p->error_indicator) {
1746 D(p->level--);
1747 return NULL;
1748 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001749 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001750 stmt_ty assert_stmt_var;
1751 if (
1752 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1753 &&
1754 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1755 )
1756 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001757 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001758 _res = assert_stmt_var;
1759 goto done;
1760 }
1761 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001762 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1764 }
1765 { // 'break'
1766 if (p->error_indicator) {
1767 D(p->level--);
1768 return NULL;
1769 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001770 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001771 Token * _keyword;
1772 if (
1773 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1774 )
1775 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001776 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1778 if (_token == NULL) {
1779 D(p->level--);
1780 return NULL;
1781 }
1782 int _end_lineno = _token->end_lineno;
1783 UNUSED(_end_lineno); // Only used by EXTRA macro
1784 int _end_col_offset = _token->end_col_offset;
1785 UNUSED(_end_col_offset); // Only used by EXTRA macro
1786 _res = _Py_Break ( EXTRA );
1787 if (_res == NULL && PyErr_Occurred()) {
1788 p->error_indicator = 1;
1789 D(p->level--);
1790 return NULL;
1791 }
1792 goto done;
1793 }
1794 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001795 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1797 }
1798 { // 'continue'
1799 if (p->error_indicator) {
1800 D(p->level--);
1801 return NULL;
1802 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001803 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001804 Token * _keyword;
1805 if (
1806 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1807 )
1808 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001809 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001810 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1811 if (_token == NULL) {
1812 D(p->level--);
1813 return NULL;
1814 }
1815 int _end_lineno = _token->end_lineno;
1816 UNUSED(_end_lineno); // Only used by EXTRA macro
1817 int _end_col_offset = _token->end_col_offset;
1818 UNUSED(_end_col_offset); // Only used by EXTRA macro
1819 _res = _Py_Continue ( EXTRA );
1820 if (_res == NULL && PyErr_Occurred()) {
1821 p->error_indicator = 1;
1822 D(p->level--);
1823 return NULL;
1824 }
1825 goto done;
1826 }
1827 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001828 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1830 }
1831 { // &'global' global_stmt
1832 if (p->error_indicator) {
1833 D(p->level--);
1834 return NULL;
1835 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001836 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001837 stmt_ty global_stmt_var;
1838 if (
1839 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1840 &&
1841 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1842 )
1843 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001844 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001845 _res = global_stmt_var;
1846 goto done;
1847 }
1848 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001849 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1851 }
1852 { // &'nonlocal' nonlocal_stmt
1853 if (p->error_indicator) {
1854 D(p->level--);
1855 return NULL;
1856 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001857 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001858 stmt_ty nonlocal_stmt_var;
1859 if (
1860 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1861 &&
1862 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1863 )
1864 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001865 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001866 _res = nonlocal_stmt_var;
1867 goto done;
1868 }
1869 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001870 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1872 }
1873 _res = NULL;
1874 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001875 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001876 D(p->level--);
1877 return _res;
1878}
1879
1880// compound_stmt:
1881// | &('def' | '@' | ASYNC) function_def
1882// | &'if' if_stmt
1883// | &('class' | '@') class_def
1884// | &('with' | ASYNC) with_stmt
1885// | &('for' | ASYNC) for_stmt
1886// | &'try' try_stmt
1887// | &'while' while_stmt
1888static stmt_ty
1889compound_stmt_rule(Parser *p)
1890{
1891 D(p->level++);
1892 if (p->error_indicator) {
1893 D(p->level--);
1894 return NULL;
1895 }
1896 stmt_ty _res = NULL;
1897 int _mark = p->mark;
1898 { // &('def' | '@' | ASYNC) function_def
1899 if (p->error_indicator) {
1900 D(p->level--);
1901 return NULL;
1902 }
1903 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1904 stmt_ty function_def_var;
1905 if (
1906 _PyPegen_lookahead(1, _tmp_15_rule, p)
1907 &&
1908 (function_def_var = function_def_rule(p)) // function_def
1909 )
1910 {
1911 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1912 _res = function_def_var;
1913 goto done;
1914 }
1915 p->mark = _mark;
1916 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1918 }
1919 { // &'if' if_stmt
1920 if (p->error_indicator) {
1921 D(p->level--);
1922 return NULL;
1923 }
1924 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1925 stmt_ty if_stmt_var;
1926 if (
1927 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
1928 &&
1929 (if_stmt_var = if_stmt_rule(p)) // if_stmt
1930 )
1931 {
1932 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1933 _res = if_stmt_var;
1934 goto done;
1935 }
1936 p->mark = _mark;
1937 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
1939 }
1940 { // &('class' | '@') class_def
1941 if (p->error_indicator) {
1942 D(p->level--);
1943 return NULL;
1944 }
1945 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1946 stmt_ty class_def_var;
1947 if (
1948 _PyPegen_lookahead(1, _tmp_16_rule, p)
1949 &&
1950 (class_def_var = class_def_rule(p)) // class_def
1951 )
1952 {
1953 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1954 _res = class_def_var;
1955 goto done;
1956 }
1957 p->mark = _mark;
1958 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
1960 }
1961 { // &('with' | ASYNC) with_stmt
1962 if (p->error_indicator) {
1963 D(p->level--);
1964 return NULL;
1965 }
1966 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1967 stmt_ty with_stmt_var;
1968 if (
1969 _PyPegen_lookahead(1, _tmp_17_rule, p)
1970 &&
1971 (with_stmt_var = with_stmt_rule(p)) // with_stmt
1972 )
1973 {
1974 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1975 _res = with_stmt_var;
1976 goto done;
1977 }
1978 p->mark = _mark;
1979 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1981 }
1982 { // &('for' | ASYNC) for_stmt
1983 if (p->error_indicator) {
1984 D(p->level--);
1985 return NULL;
1986 }
1987 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1988 stmt_ty for_stmt_var;
1989 if (
1990 _PyPegen_lookahead(1, _tmp_18_rule, p)
1991 &&
1992 (for_stmt_var = for_stmt_rule(p)) // for_stmt
1993 )
1994 {
1995 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1996 _res = for_stmt_var;
1997 goto done;
1998 }
1999 p->mark = _mark;
2000 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2002 }
2003 { // &'try' try_stmt
2004 if (p->error_indicator) {
2005 D(p->level--);
2006 return NULL;
2007 }
2008 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2009 stmt_ty try_stmt_var;
2010 if (
2011 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2012 &&
2013 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2014 )
2015 {
2016 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2017 _res = try_stmt_var;
2018 goto done;
2019 }
2020 p->mark = _mark;
2021 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2023 }
2024 { // &'while' while_stmt
2025 if (p->error_indicator) {
2026 D(p->level--);
2027 return NULL;
2028 }
2029 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2030 stmt_ty while_stmt_var;
2031 if (
2032 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2033 &&
2034 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2035 )
2036 {
2037 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2038 _res = while_stmt_var;
2039 goto done;
2040 }
2041 p->mark = _mark;
2042 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2044 }
2045 _res = NULL;
2046 done:
2047 D(p->level--);
2048 return _res;
2049}
2050
2051// assignment:
2052// | NAME ':' expression ['=' annotated_rhs]
2053// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2054// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002055// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002056// | invalid_assignment
2057static stmt_ty
2058assignment_rule(Parser *p)
2059{
2060 D(p->level++);
2061 if (p->error_indicator) {
2062 D(p->level--);
2063 return NULL;
2064 }
2065 stmt_ty _res = NULL;
2066 int _mark = p->mark;
2067 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2068 p->error_indicator = 1;
2069 D(p->level--);
2070 return NULL;
2071 }
2072 int _start_lineno = p->tokens[_mark]->lineno;
2073 UNUSED(_start_lineno); // Only used by EXTRA macro
2074 int _start_col_offset = p->tokens[_mark]->col_offset;
2075 UNUSED(_start_col_offset); // Only used by EXTRA macro
2076 { // NAME ':' expression ['=' annotated_rhs]
2077 if (p->error_indicator) {
2078 D(p->level--);
2079 return NULL;
2080 }
2081 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2082 Token * _literal;
2083 expr_ty a;
2084 expr_ty b;
2085 void *c;
2086 if (
2087 (a = _PyPegen_name_token(p)) // NAME
2088 &&
2089 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2090 &&
2091 (b = expression_rule(p)) // expression
2092 &&
2093 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2094 )
2095 {
2096 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2097 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2098 if (_token == NULL) {
2099 D(p->level--);
2100 return NULL;
2101 }
2102 int _end_lineno = _token->end_lineno;
2103 UNUSED(_end_lineno); // Only used by EXTRA macro
2104 int _end_col_offset = _token->end_col_offset;
2105 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002106 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002107 if (_res == NULL && PyErr_Occurred()) {
2108 p->error_indicator = 1;
2109 D(p->level--);
2110 return NULL;
2111 }
2112 goto done;
2113 }
2114 p->mark = _mark;
2115 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2117 }
2118 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2119 if (p->error_indicator) {
2120 D(p->level--);
2121 return NULL;
2122 }
2123 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2124 Token * _literal;
2125 void *a;
2126 expr_ty b;
2127 void *c;
2128 if (
2129 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2130 &&
2131 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2132 &&
2133 (b = expression_rule(p)) // expression
2134 &&
2135 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2136 )
2137 {
2138 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2139 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2140 if (_token == NULL) {
2141 D(p->level--);
2142 return NULL;
2143 }
2144 int _end_lineno = _token->end_lineno;
2145 UNUSED(_end_lineno); // Only used by EXTRA macro
2146 int _end_col_offset = _token->end_col_offset;
2147 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002148 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002149 if (_res == NULL && PyErr_Occurred()) {
2150 p->error_indicator = 1;
2151 D(p->level--);
2152 return NULL;
2153 }
2154 goto done;
2155 }
2156 p->mark = _mark;
2157 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2159 }
2160 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2161 if (p->error_indicator) {
2162 D(p->level--);
2163 return NULL;
2164 }
2165 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01002166 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002167 void *b;
2168 void *tc;
2169 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002170 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002171 &&
2172 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2173 &&
2174 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2175 &&
2176 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2177 )
2178 {
2179 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2180 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2181 if (_token == NULL) {
2182 D(p->level--);
2183 return NULL;
2184 }
2185 int _end_lineno = _token->end_lineno;
2186 UNUSED(_end_lineno); // Only used by EXTRA macro
2187 int _end_col_offset = _token->end_col_offset;
2188 UNUSED(_end_col_offset); // Only used by EXTRA macro
2189 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2190 if (_res == NULL && PyErr_Occurred()) {
2191 p->error_indicator = 1;
2192 D(p->level--);
2193 return NULL;
2194 }
2195 goto done;
2196 }
2197 p->mark = _mark;
2198 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2200 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002201 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002202 if (p->error_indicator) {
2203 D(p->level--);
2204 return NULL;
2205 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002206 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2207 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002208 expr_ty a;
2209 AugOperator* b;
2210 void *c;
2211 if (
2212 (a = single_target_rule(p)) // single_target
2213 &&
2214 (b = augassign_rule(p)) // augassign
2215 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002216 (_cut_var = 1)
2217 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002218 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2219 )
2220 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002221 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002222 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2223 if (_token == NULL) {
2224 D(p->level--);
2225 return NULL;
2226 }
2227 int _end_lineno = _token->end_lineno;
2228 UNUSED(_end_lineno); // Only used by EXTRA macro
2229 int _end_col_offset = _token->end_col_offset;
2230 UNUSED(_end_col_offset); // Only used by EXTRA macro
2231 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2232 if (_res == NULL && PyErr_Occurred()) {
2233 p->error_indicator = 1;
2234 D(p->level--);
2235 return NULL;
2236 }
2237 goto done;
2238 }
2239 p->mark = _mark;
2240 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2242 if (_cut_var) {
2243 D(p->level--);
2244 return NULL;
2245 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002246 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002247 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002248 if (p->error_indicator) {
2249 D(p->level--);
2250 return NULL;
2251 }
2252 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2253 void *invalid_assignment_var;
2254 if (
2255 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2256 )
2257 {
2258 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2259 _res = invalid_assignment_var;
2260 goto done;
2261 }
2262 p->mark = _mark;
2263 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2265 }
2266 _res = NULL;
2267 done:
2268 D(p->level--);
2269 return _res;
2270}
2271
2272// augassign:
2273// | '+='
2274// | '-='
2275// | '*='
2276// | '@='
2277// | '/='
2278// | '%='
2279// | '&='
2280// | '|='
2281// | '^='
2282// | '<<='
2283// | '>>='
2284// | '**='
2285// | '//='
2286static AugOperator*
2287augassign_rule(Parser *p)
2288{
2289 D(p->level++);
2290 if (p->error_indicator) {
2291 D(p->level--);
2292 return NULL;
2293 }
2294 AugOperator* _res = NULL;
2295 int _mark = p->mark;
2296 { // '+='
2297 if (p->error_indicator) {
2298 D(p->level--);
2299 return NULL;
2300 }
2301 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2302 Token * _literal;
2303 if (
2304 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2305 )
2306 {
2307 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2308 _res = _PyPegen_augoperator ( p , Add );
2309 if (_res == NULL && PyErr_Occurred()) {
2310 p->error_indicator = 1;
2311 D(p->level--);
2312 return NULL;
2313 }
2314 goto done;
2315 }
2316 p->mark = _mark;
2317 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2319 }
2320 { // '-='
2321 if (p->error_indicator) {
2322 D(p->level--);
2323 return NULL;
2324 }
2325 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2326 Token * _literal;
2327 if (
2328 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2329 )
2330 {
2331 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2332 _res = _PyPegen_augoperator ( p , Sub );
2333 if (_res == NULL && PyErr_Occurred()) {
2334 p->error_indicator = 1;
2335 D(p->level--);
2336 return NULL;
2337 }
2338 goto done;
2339 }
2340 p->mark = _mark;
2341 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2343 }
2344 { // '*='
2345 if (p->error_indicator) {
2346 D(p->level--);
2347 return NULL;
2348 }
2349 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2350 Token * _literal;
2351 if (
2352 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2353 )
2354 {
2355 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2356 _res = _PyPegen_augoperator ( p , Mult );
2357 if (_res == NULL && PyErr_Occurred()) {
2358 p->error_indicator = 1;
2359 D(p->level--);
2360 return NULL;
2361 }
2362 goto done;
2363 }
2364 p->mark = _mark;
2365 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2367 }
2368 { // '@='
2369 if (p->error_indicator) {
2370 D(p->level--);
2371 return NULL;
2372 }
2373 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2374 Token * _literal;
2375 if (
2376 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2377 )
2378 {
2379 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002380 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002381 if (_res == NULL && PyErr_Occurred()) {
2382 p->error_indicator = 1;
2383 D(p->level--);
2384 return NULL;
2385 }
2386 goto done;
2387 }
2388 p->mark = _mark;
2389 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2391 }
2392 { // '/='
2393 if (p->error_indicator) {
2394 D(p->level--);
2395 return NULL;
2396 }
2397 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2398 Token * _literal;
2399 if (
2400 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2401 )
2402 {
2403 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2404 _res = _PyPegen_augoperator ( p , Div );
2405 if (_res == NULL && PyErr_Occurred()) {
2406 p->error_indicator = 1;
2407 D(p->level--);
2408 return NULL;
2409 }
2410 goto done;
2411 }
2412 p->mark = _mark;
2413 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2415 }
2416 { // '%='
2417 if (p->error_indicator) {
2418 D(p->level--);
2419 return NULL;
2420 }
2421 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2422 Token * _literal;
2423 if (
2424 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2425 )
2426 {
2427 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2428 _res = _PyPegen_augoperator ( p , Mod );
2429 if (_res == NULL && PyErr_Occurred()) {
2430 p->error_indicator = 1;
2431 D(p->level--);
2432 return NULL;
2433 }
2434 goto done;
2435 }
2436 p->mark = _mark;
2437 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2439 }
2440 { // '&='
2441 if (p->error_indicator) {
2442 D(p->level--);
2443 return NULL;
2444 }
2445 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2446 Token * _literal;
2447 if (
2448 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2449 )
2450 {
2451 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2452 _res = _PyPegen_augoperator ( p , BitAnd );
2453 if (_res == NULL && PyErr_Occurred()) {
2454 p->error_indicator = 1;
2455 D(p->level--);
2456 return NULL;
2457 }
2458 goto done;
2459 }
2460 p->mark = _mark;
2461 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2463 }
2464 { // '|='
2465 if (p->error_indicator) {
2466 D(p->level--);
2467 return NULL;
2468 }
2469 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2470 Token * _literal;
2471 if (
2472 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2473 )
2474 {
2475 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2476 _res = _PyPegen_augoperator ( p , BitOr );
2477 if (_res == NULL && PyErr_Occurred()) {
2478 p->error_indicator = 1;
2479 D(p->level--);
2480 return NULL;
2481 }
2482 goto done;
2483 }
2484 p->mark = _mark;
2485 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2487 }
2488 { // '^='
2489 if (p->error_indicator) {
2490 D(p->level--);
2491 return NULL;
2492 }
2493 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2494 Token * _literal;
2495 if (
2496 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2497 )
2498 {
2499 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2500 _res = _PyPegen_augoperator ( p , BitXor );
2501 if (_res == NULL && PyErr_Occurred()) {
2502 p->error_indicator = 1;
2503 D(p->level--);
2504 return NULL;
2505 }
2506 goto done;
2507 }
2508 p->mark = _mark;
2509 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2511 }
2512 { // '<<='
2513 if (p->error_indicator) {
2514 D(p->level--);
2515 return NULL;
2516 }
2517 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2518 Token * _literal;
2519 if (
2520 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2521 )
2522 {
2523 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2524 _res = _PyPegen_augoperator ( p , LShift );
2525 if (_res == NULL && PyErr_Occurred()) {
2526 p->error_indicator = 1;
2527 D(p->level--);
2528 return NULL;
2529 }
2530 goto done;
2531 }
2532 p->mark = _mark;
2533 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2535 }
2536 { // '>>='
2537 if (p->error_indicator) {
2538 D(p->level--);
2539 return NULL;
2540 }
2541 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2542 Token * _literal;
2543 if (
2544 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2545 )
2546 {
2547 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2548 _res = _PyPegen_augoperator ( p , RShift );
2549 if (_res == NULL && PyErr_Occurred()) {
2550 p->error_indicator = 1;
2551 D(p->level--);
2552 return NULL;
2553 }
2554 goto done;
2555 }
2556 p->mark = _mark;
2557 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2559 }
2560 { // '**='
2561 if (p->error_indicator) {
2562 D(p->level--);
2563 return NULL;
2564 }
2565 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2566 Token * _literal;
2567 if (
2568 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2569 )
2570 {
2571 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2572 _res = _PyPegen_augoperator ( p , Pow );
2573 if (_res == NULL && PyErr_Occurred()) {
2574 p->error_indicator = 1;
2575 D(p->level--);
2576 return NULL;
2577 }
2578 goto done;
2579 }
2580 p->mark = _mark;
2581 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2583 }
2584 { // '//='
2585 if (p->error_indicator) {
2586 D(p->level--);
2587 return NULL;
2588 }
2589 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2590 Token * _literal;
2591 if (
2592 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2593 )
2594 {
2595 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2596 _res = _PyPegen_augoperator ( p , FloorDiv );
2597 if (_res == NULL && PyErr_Occurred()) {
2598 p->error_indicator = 1;
2599 D(p->level--);
2600 return NULL;
2601 }
2602 goto done;
2603 }
2604 p->mark = _mark;
2605 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2607 }
2608 _res = NULL;
2609 done:
2610 D(p->level--);
2611 return _res;
2612}
2613
2614// global_stmt: 'global' ','.NAME+
2615static stmt_ty
2616global_stmt_rule(Parser *p)
2617{
2618 D(p->level++);
2619 if (p->error_indicator) {
2620 D(p->level--);
2621 return NULL;
2622 }
2623 stmt_ty _res = NULL;
2624 int _mark = p->mark;
2625 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2626 p->error_indicator = 1;
2627 D(p->level--);
2628 return NULL;
2629 }
2630 int _start_lineno = p->tokens[_mark]->lineno;
2631 UNUSED(_start_lineno); // Only used by EXTRA macro
2632 int _start_col_offset = p->tokens[_mark]->col_offset;
2633 UNUSED(_start_col_offset); // Only used by EXTRA macro
2634 { // 'global' ','.NAME+
2635 if (p->error_indicator) {
2636 D(p->level--);
2637 return NULL;
2638 }
2639 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2640 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002641 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002642 if (
2643 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2644 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002645 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002646 )
2647 {
2648 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2649 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2650 if (_token == NULL) {
2651 D(p->level--);
2652 return NULL;
2653 }
2654 int _end_lineno = _token->end_lineno;
2655 UNUSED(_end_lineno); // Only used by EXTRA macro
2656 int _end_col_offset = _token->end_col_offset;
2657 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002658 _res = _Py_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002659 if (_res == NULL && PyErr_Occurred()) {
2660 p->error_indicator = 1;
2661 D(p->level--);
2662 return NULL;
2663 }
2664 goto done;
2665 }
2666 p->mark = _mark;
2667 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2669 }
2670 _res = NULL;
2671 done:
2672 D(p->level--);
2673 return _res;
2674}
2675
2676// nonlocal_stmt: 'nonlocal' ','.NAME+
2677static stmt_ty
2678nonlocal_stmt_rule(Parser *p)
2679{
2680 D(p->level++);
2681 if (p->error_indicator) {
2682 D(p->level--);
2683 return NULL;
2684 }
2685 stmt_ty _res = NULL;
2686 int _mark = p->mark;
2687 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2688 p->error_indicator = 1;
2689 D(p->level--);
2690 return NULL;
2691 }
2692 int _start_lineno = p->tokens[_mark]->lineno;
2693 UNUSED(_start_lineno); // Only used by EXTRA macro
2694 int _start_col_offset = p->tokens[_mark]->col_offset;
2695 UNUSED(_start_col_offset); // Only used by EXTRA macro
2696 { // 'nonlocal' ','.NAME+
2697 if (p->error_indicator) {
2698 D(p->level--);
2699 return NULL;
2700 }
2701 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2702 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002703 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002704 if (
2705 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2706 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002707 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002708 )
2709 {
2710 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2711 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2712 if (_token == NULL) {
2713 D(p->level--);
2714 return NULL;
2715 }
2716 int _end_lineno = _token->end_lineno;
2717 UNUSED(_end_lineno); // Only used by EXTRA macro
2718 int _end_col_offset = _token->end_col_offset;
2719 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002720 _res = _Py_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002721 if (_res == NULL && PyErr_Occurred()) {
2722 p->error_indicator = 1;
2723 D(p->level--);
2724 return NULL;
2725 }
2726 goto done;
2727 }
2728 p->mark = _mark;
2729 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2731 }
2732 _res = NULL;
2733 done:
2734 D(p->level--);
2735 return _res;
2736}
2737
2738// yield_stmt: yield_expr
2739static stmt_ty
2740yield_stmt_rule(Parser *p)
2741{
2742 D(p->level++);
2743 if (p->error_indicator) {
2744 D(p->level--);
2745 return NULL;
2746 }
2747 stmt_ty _res = NULL;
2748 int _mark = p->mark;
2749 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2750 p->error_indicator = 1;
2751 D(p->level--);
2752 return NULL;
2753 }
2754 int _start_lineno = p->tokens[_mark]->lineno;
2755 UNUSED(_start_lineno); // Only used by EXTRA macro
2756 int _start_col_offset = p->tokens[_mark]->col_offset;
2757 UNUSED(_start_col_offset); // Only used by EXTRA macro
2758 { // yield_expr
2759 if (p->error_indicator) {
2760 D(p->level--);
2761 return NULL;
2762 }
2763 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2764 expr_ty y;
2765 if (
2766 (y = yield_expr_rule(p)) // yield_expr
2767 )
2768 {
2769 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2770 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2771 if (_token == NULL) {
2772 D(p->level--);
2773 return NULL;
2774 }
2775 int _end_lineno = _token->end_lineno;
2776 UNUSED(_end_lineno); // Only used by EXTRA macro
2777 int _end_col_offset = _token->end_col_offset;
2778 UNUSED(_end_col_offset); // Only used by EXTRA macro
2779 _res = _Py_Expr ( y , EXTRA );
2780 if (_res == NULL && PyErr_Occurred()) {
2781 p->error_indicator = 1;
2782 D(p->level--);
2783 return NULL;
2784 }
2785 goto done;
2786 }
2787 p->mark = _mark;
2788 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2790 }
2791 _res = NULL;
2792 done:
2793 D(p->level--);
2794 return _res;
2795}
2796
2797// assert_stmt: 'assert' expression [',' expression]
2798static stmt_ty
2799assert_stmt_rule(Parser *p)
2800{
2801 D(p->level++);
2802 if (p->error_indicator) {
2803 D(p->level--);
2804 return NULL;
2805 }
2806 stmt_ty _res = NULL;
2807 int _mark = p->mark;
2808 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2809 p->error_indicator = 1;
2810 D(p->level--);
2811 return NULL;
2812 }
2813 int _start_lineno = p->tokens[_mark]->lineno;
2814 UNUSED(_start_lineno); // Only used by EXTRA macro
2815 int _start_col_offset = p->tokens[_mark]->col_offset;
2816 UNUSED(_start_col_offset); // Only used by EXTRA macro
2817 { // 'assert' expression [',' expression]
2818 if (p->error_indicator) {
2819 D(p->level--);
2820 return NULL;
2821 }
2822 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2823 Token * _keyword;
2824 expr_ty a;
2825 void *b;
2826 if (
2827 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2828 &&
2829 (a = expression_rule(p)) // expression
2830 &&
2831 (b = _tmp_29_rule(p), 1) // [',' expression]
2832 )
2833 {
2834 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2835 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2836 if (_token == NULL) {
2837 D(p->level--);
2838 return NULL;
2839 }
2840 int _end_lineno = _token->end_lineno;
2841 UNUSED(_end_lineno); // Only used by EXTRA macro
2842 int _end_col_offset = _token->end_col_offset;
2843 UNUSED(_end_col_offset); // Only used by EXTRA macro
2844 _res = _Py_Assert ( a , b , EXTRA );
2845 if (_res == NULL && PyErr_Occurred()) {
2846 p->error_indicator = 1;
2847 D(p->level--);
2848 return NULL;
2849 }
2850 goto done;
2851 }
2852 p->mark = _mark;
2853 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
2855 }
2856 _res = NULL;
2857 done:
2858 D(p->level--);
2859 return _res;
2860}
2861
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002862// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002863static stmt_ty
2864del_stmt_rule(Parser *p)
2865{
2866 D(p->level++);
2867 if (p->error_indicator) {
2868 D(p->level--);
2869 return NULL;
2870 }
2871 stmt_ty _res = NULL;
2872 int _mark = p->mark;
2873 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2874 p->error_indicator = 1;
2875 D(p->level--);
2876 return NULL;
2877 }
2878 int _start_lineno = p->tokens[_mark]->lineno;
2879 UNUSED(_start_lineno); // Only used by EXTRA macro
2880 int _start_col_offset = p->tokens[_mark]->col_offset;
2881 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002882 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002883 if (p->error_indicator) {
2884 D(p->level--);
2885 return NULL;
2886 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002887 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002888 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002889 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002890 if (
2891 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
2892 &&
2893 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002894 &&
2895 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002896 )
2897 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002898 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002899 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2900 if (_token == NULL) {
2901 D(p->level--);
2902 return NULL;
2903 }
2904 int _end_lineno = _token->end_lineno;
2905 UNUSED(_end_lineno); // Only used by EXTRA macro
2906 int _end_col_offset = _token->end_col_offset;
2907 UNUSED(_end_col_offset); // Only used by EXTRA macro
2908 _res = _Py_Delete ( a , EXTRA );
2909 if (_res == NULL && PyErr_Occurred()) {
2910 p->error_indicator = 1;
2911 D(p->level--);
2912 return NULL;
2913 }
2914 goto done;
2915 }
2916 p->mark = _mark;
2917 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2919 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002920 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002921 if (p->error_indicator) {
2922 D(p->level--);
2923 return NULL;
2924 }
2925 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2926 void *invalid_del_stmt_var;
2927 if (
2928 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2929 )
2930 {
2931 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2932 _res = invalid_del_stmt_var;
2933 goto done;
2934 }
2935 p->mark = _mark;
2936 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002938 }
2939 _res = NULL;
2940 done:
2941 D(p->level--);
2942 return _res;
2943}
2944
2945// import_stmt: import_name | import_from
2946static stmt_ty
2947import_stmt_rule(Parser *p)
2948{
2949 D(p->level++);
2950 if (p->error_indicator) {
2951 D(p->level--);
2952 return NULL;
2953 }
2954 stmt_ty _res = NULL;
2955 int _mark = p->mark;
2956 { // import_name
2957 if (p->error_indicator) {
2958 D(p->level--);
2959 return NULL;
2960 }
2961 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
2962 stmt_ty import_name_var;
2963 if (
2964 (import_name_var = import_name_rule(p)) // import_name
2965 )
2966 {
2967 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
2968 _res = import_name_var;
2969 goto done;
2970 }
2971 p->mark = _mark;
2972 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
2974 }
2975 { // import_from
2976 if (p->error_indicator) {
2977 D(p->level--);
2978 return NULL;
2979 }
2980 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
2981 stmt_ty import_from_var;
2982 if (
2983 (import_from_var = import_from_rule(p)) // import_from
2984 )
2985 {
2986 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
2987 _res = import_from_var;
2988 goto done;
2989 }
2990 p->mark = _mark;
2991 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
2993 }
2994 _res = NULL;
2995 done:
2996 D(p->level--);
2997 return _res;
2998}
2999
3000// import_name: 'import' dotted_as_names
3001static stmt_ty
3002import_name_rule(Parser *p)
3003{
3004 D(p->level++);
3005 if (p->error_indicator) {
3006 D(p->level--);
3007 return NULL;
3008 }
3009 stmt_ty _res = NULL;
3010 int _mark = p->mark;
3011 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3012 p->error_indicator = 1;
3013 D(p->level--);
3014 return NULL;
3015 }
3016 int _start_lineno = p->tokens[_mark]->lineno;
3017 UNUSED(_start_lineno); // Only used by EXTRA macro
3018 int _start_col_offset = p->tokens[_mark]->col_offset;
3019 UNUSED(_start_col_offset); // Only used by EXTRA macro
3020 { // 'import' dotted_as_names
3021 if (p->error_indicator) {
3022 D(p->level--);
3023 return NULL;
3024 }
3025 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3026 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003027 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003028 if (
3029 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3030 &&
3031 (a = dotted_as_names_rule(p)) // dotted_as_names
3032 )
3033 {
3034 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3035 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3036 if (_token == NULL) {
3037 D(p->level--);
3038 return NULL;
3039 }
3040 int _end_lineno = _token->end_lineno;
3041 UNUSED(_end_lineno); // Only used by EXTRA macro
3042 int _end_col_offset = _token->end_col_offset;
3043 UNUSED(_end_col_offset); // Only used by EXTRA macro
3044 _res = _Py_Import ( a , EXTRA );
3045 if (_res == NULL && PyErr_Occurred()) {
3046 p->error_indicator = 1;
3047 D(p->level--);
3048 return NULL;
3049 }
3050 goto done;
3051 }
3052 p->mark = _mark;
3053 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3055 }
3056 _res = NULL;
3057 done:
3058 D(p->level--);
3059 return _res;
3060}
3061
3062// import_from:
3063// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3064// | 'from' (('.' | '...'))+ 'import' import_from_targets
3065static stmt_ty
3066import_from_rule(Parser *p)
3067{
3068 D(p->level++);
3069 if (p->error_indicator) {
3070 D(p->level--);
3071 return NULL;
3072 }
3073 stmt_ty _res = NULL;
3074 int _mark = p->mark;
3075 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3076 p->error_indicator = 1;
3077 D(p->level--);
3078 return NULL;
3079 }
3080 int _start_lineno = p->tokens[_mark]->lineno;
3081 UNUSED(_start_lineno); // Only used by EXTRA macro
3082 int _start_col_offset = p->tokens[_mark]->col_offset;
3083 UNUSED(_start_col_offset); // Only used by EXTRA macro
3084 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3085 if (p->error_indicator) {
3086 D(p->level--);
3087 return NULL;
3088 }
3089 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3090 Token * _keyword;
3091 Token * _keyword_1;
3092 asdl_seq * a;
3093 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003094 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003095 if (
3096 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3097 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003098 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003099 &&
3100 (b = dotted_name_rule(p)) // dotted_name
3101 &&
3102 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3103 &&
3104 (c = import_from_targets_rule(p)) // import_from_targets
3105 )
3106 {
3107 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3109 if (_token == NULL) {
3110 D(p->level--);
3111 return NULL;
3112 }
3113 int _end_lineno = _token->end_lineno;
3114 UNUSED(_end_lineno); // Only used by EXTRA macro
3115 int _end_col_offset = _token->end_col_offset;
3116 UNUSED(_end_col_offset); // Only used by EXTRA macro
3117 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3118 if (_res == NULL && PyErr_Occurred()) {
3119 p->error_indicator = 1;
3120 D(p->level--);
3121 return NULL;
3122 }
3123 goto done;
3124 }
3125 p->mark = _mark;
3126 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3128 }
3129 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3130 if (p->error_indicator) {
3131 D(p->level--);
3132 return NULL;
3133 }
3134 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3135 Token * _keyword;
3136 Token * _keyword_1;
3137 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003138 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003139 if (
3140 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3141 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003142 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003143 &&
3144 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3145 &&
3146 (b = import_from_targets_rule(p)) // import_from_targets
3147 )
3148 {
3149 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3151 if (_token == NULL) {
3152 D(p->level--);
3153 return NULL;
3154 }
3155 int _end_lineno = _token->end_lineno;
3156 UNUSED(_end_lineno); // Only used by EXTRA macro
3157 int _end_col_offset = _token->end_col_offset;
3158 UNUSED(_end_col_offset); // Only used by EXTRA macro
3159 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3160 if (_res == NULL && PyErr_Occurred()) {
3161 p->error_indicator = 1;
3162 D(p->level--);
3163 return NULL;
3164 }
3165 goto done;
3166 }
3167 p->mark = _mark;
3168 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3170 }
3171 _res = NULL;
3172 done:
3173 D(p->level--);
3174 return _res;
3175}
3176
3177// import_from_targets:
3178// | '(' import_from_as_names ','? ')'
3179// | import_from_as_names !','
3180// | '*'
3181// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003182static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003183import_from_targets_rule(Parser *p)
3184{
3185 D(p->level++);
3186 if (p->error_indicator) {
3187 D(p->level--);
3188 return NULL;
3189 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003190 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003191 int _mark = p->mark;
3192 { // '(' import_from_as_names ','? ')'
3193 if (p->error_indicator) {
3194 D(p->level--);
3195 return NULL;
3196 }
3197 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3198 Token * _literal;
3199 Token * _literal_1;
3200 void *_opt_var;
3201 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003202 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003203 if (
3204 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3205 &&
3206 (a = import_from_as_names_rule(p)) // import_from_as_names
3207 &&
3208 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3209 &&
3210 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3211 )
3212 {
3213 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3214 _res = a;
3215 if (_res == NULL && PyErr_Occurred()) {
3216 p->error_indicator = 1;
3217 D(p->level--);
3218 return NULL;
3219 }
3220 goto done;
3221 }
3222 p->mark = _mark;
3223 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3225 }
3226 { // import_from_as_names !','
3227 if (p->error_indicator) {
3228 D(p->level--);
3229 return NULL;
3230 }
3231 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003232 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003233 if (
3234 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3235 &&
3236 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3237 )
3238 {
3239 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3240 _res = import_from_as_names_var;
3241 goto done;
3242 }
3243 p->mark = _mark;
3244 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3246 }
3247 { // '*'
3248 if (p->error_indicator) {
3249 D(p->level--);
3250 return NULL;
3251 }
3252 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3253 Token * _literal;
3254 if (
3255 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3256 )
3257 {
3258 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003259 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003260 if (_res == NULL && PyErr_Occurred()) {
3261 p->error_indicator = 1;
3262 D(p->level--);
3263 return NULL;
3264 }
3265 goto done;
3266 }
3267 p->mark = _mark;
3268 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3270 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003271 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003272 if (p->error_indicator) {
3273 D(p->level--);
3274 return NULL;
3275 }
3276 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3277 void *invalid_import_from_targets_var;
3278 if (
3279 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3280 )
3281 {
3282 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3283 _res = invalid_import_from_targets_var;
3284 goto done;
3285 }
3286 p->mark = _mark;
3287 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3289 }
3290 _res = NULL;
3291 done:
3292 D(p->level--);
3293 return _res;
3294}
3295
3296// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003297static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003298import_from_as_names_rule(Parser *p)
3299{
3300 D(p->level++);
3301 if (p->error_indicator) {
3302 D(p->level--);
3303 return NULL;
3304 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003305 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003306 int _mark = p->mark;
3307 { // ','.import_from_as_name+
3308 if (p->error_indicator) {
3309 D(p->level--);
3310 return NULL;
3311 }
3312 D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003313 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003314 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003315 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003316 )
3317 {
3318 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3319 _res = a;
3320 if (_res == NULL && PyErr_Occurred()) {
3321 p->error_indicator = 1;
3322 D(p->level--);
3323 return NULL;
3324 }
3325 goto done;
3326 }
3327 p->mark = _mark;
3328 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3330 }
3331 _res = NULL;
3332 done:
3333 D(p->level--);
3334 return _res;
3335}
3336
3337// import_from_as_name: NAME ['as' NAME]
3338static alias_ty
3339import_from_as_name_rule(Parser *p)
3340{
3341 D(p->level++);
3342 if (p->error_indicator) {
3343 D(p->level--);
3344 return NULL;
3345 }
3346 alias_ty _res = NULL;
3347 int _mark = p->mark;
3348 { // NAME ['as' NAME]
3349 if (p->error_indicator) {
3350 D(p->level--);
3351 return NULL;
3352 }
3353 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3354 expr_ty a;
3355 void *b;
3356 if (
3357 (a = _PyPegen_name_token(p)) // NAME
3358 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003359 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003360 )
3361 {
3362 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3363 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3364 if (_res == NULL && PyErr_Occurred()) {
3365 p->error_indicator = 1;
3366 D(p->level--);
3367 return NULL;
3368 }
3369 goto done;
3370 }
3371 p->mark = _mark;
3372 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3374 }
3375 _res = NULL;
3376 done:
3377 D(p->level--);
3378 return _res;
3379}
3380
3381// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003382static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003383dotted_as_names_rule(Parser *p)
3384{
3385 D(p->level++);
3386 if (p->error_indicator) {
3387 D(p->level--);
3388 return NULL;
3389 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003390 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003391 int _mark = p->mark;
3392 { // ','.dotted_as_name+
3393 if (p->error_indicator) {
3394 D(p->level--);
3395 return NULL;
3396 }
3397 D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003398 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003399 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003400 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003401 )
3402 {
3403 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3404 _res = a;
3405 if (_res == NULL && PyErr_Occurred()) {
3406 p->error_indicator = 1;
3407 D(p->level--);
3408 return NULL;
3409 }
3410 goto done;
3411 }
3412 p->mark = _mark;
3413 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3415 }
3416 _res = NULL;
3417 done:
3418 D(p->level--);
3419 return _res;
3420}
3421
3422// dotted_as_name: dotted_name ['as' NAME]
3423static alias_ty
3424dotted_as_name_rule(Parser *p)
3425{
3426 D(p->level++);
3427 if (p->error_indicator) {
3428 D(p->level--);
3429 return NULL;
3430 }
3431 alias_ty _res = NULL;
3432 int _mark = p->mark;
3433 { // dotted_name ['as' NAME]
3434 if (p->error_indicator) {
3435 D(p->level--);
3436 return NULL;
3437 }
3438 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3439 expr_ty a;
3440 void *b;
3441 if (
3442 (a = dotted_name_rule(p)) // dotted_name
3443 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003444 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003445 )
3446 {
3447 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3448 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3449 if (_res == NULL && PyErr_Occurred()) {
3450 p->error_indicator = 1;
3451 D(p->level--);
3452 return NULL;
3453 }
3454 goto done;
3455 }
3456 p->mark = _mark;
3457 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3459 }
3460 _res = NULL;
3461 done:
3462 D(p->level--);
3463 return _res;
3464}
3465
3466// Left-recursive
3467// dotted_name: dotted_name '.' NAME | NAME
3468static expr_ty dotted_name_raw(Parser *);
3469static expr_ty
3470dotted_name_rule(Parser *p)
3471{
3472 D(p->level++);
3473 expr_ty _res = NULL;
3474 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3475 D(p->level--);
3476 return _res;
3477 }
3478 int _mark = p->mark;
3479 int _resmark = p->mark;
3480 while (1) {
3481 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3482 if (tmpvar_0) {
3483 D(p->level--);
3484 return _res;
3485 }
3486 p->mark = _mark;
3487 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003488 if (p->error_indicator)
3489 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003490 if (_raw == NULL || p->mark <= _resmark)
3491 break;
3492 _resmark = p->mark;
3493 _res = _raw;
3494 }
3495 p->mark = _resmark;
3496 D(p->level--);
3497 return _res;
3498}
3499static expr_ty
3500dotted_name_raw(Parser *p)
3501{
3502 D(p->level++);
3503 if (p->error_indicator) {
3504 D(p->level--);
3505 return NULL;
3506 }
3507 expr_ty _res = NULL;
3508 int _mark = p->mark;
3509 { // dotted_name '.' NAME
3510 if (p->error_indicator) {
3511 D(p->level--);
3512 return NULL;
3513 }
3514 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3515 Token * _literal;
3516 expr_ty a;
3517 expr_ty b;
3518 if (
3519 (a = dotted_name_rule(p)) // dotted_name
3520 &&
3521 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3522 &&
3523 (b = _PyPegen_name_token(p)) // NAME
3524 )
3525 {
3526 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3527 _res = _PyPegen_join_names_with_dot ( p , a , b );
3528 if (_res == NULL && PyErr_Occurred()) {
3529 p->error_indicator = 1;
3530 D(p->level--);
3531 return NULL;
3532 }
3533 goto done;
3534 }
3535 p->mark = _mark;
3536 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3538 }
3539 { // NAME
3540 if (p->error_indicator) {
3541 D(p->level--);
3542 return NULL;
3543 }
3544 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3545 expr_ty name_var;
3546 if (
3547 (name_var = _PyPegen_name_token(p)) // NAME
3548 )
3549 {
3550 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3551 _res = name_var;
3552 goto done;
3553 }
3554 p->mark = _mark;
3555 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3557 }
3558 _res = NULL;
3559 done:
3560 D(p->level--);
3561 return _res;
3562}
3563
3564// if_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003565// | 'if' named_expression &&':' block elif_stmt
3566// | 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003567static stmt_ty
3568if_stmt_rule(Parser *p)
3569{
3570 D(p->level++);
3571 if (p->error_indicator) {
3572 D(p->level--);
3573 return NULL;
3574 }
3575 stmt_ty _res = NULL;
3576 int _mark = p->mark;
3577 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3578 p->error_indicator = 1;
3579 D(p->level--);
3580 return NULL;
3581 }
3582 int _start_lineno = p->tokens[_mark]->lineno;
3583 UNUSED(_start_lineno); // Only used by EXTRA macro
3584 int _start_col_offset = p->tokens[_mark]->col_offset;
3585 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003586 { // 'if' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003587 if (p->error_indicator) {
3588 D(p->level--);
3589 return NULL;
3590 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003591 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003592 Token * _keyword;
3593 Token * _literal;
3594 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003595 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003596 stmt_ty c;
3597 if (
3598 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3599 &&
3600 (a = named_expression_rule(p)) // named_expression
3601 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003602 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003603 &&
3604 (b = block_rule(p)) // block
3605 &&
3606 (c = elif_stmt_rule(p)) // elif_stmt
3607 )
3608 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003609 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003610 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3611 if (_token == NULL) {
3612 D(p->level--);
3613 return NULL;
3614 }
3615 int _end_lineno = _token->end_lineno;
3616 UNUSED(_end_lineno); // Only used by EXTRA macro
3617 int _end_col_offset = _token->end_col_offset;
3618 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003619 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003620 if (_res == NULL && PyErr_Occurred()) {
3621 p->error_indicator = 1;
3622 D(p->level--);
3623 return NULL;
3624 }
3625 goto done;
3626 }
3627 p->mark = _mark;
3628 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003630 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003631 { // 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003632 if (p->error_indicator) {
3633 D(p->level--);
3634 return NULL;
3635 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003636 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003637 Token * _keyword;
3638 Token * _literal;
3639 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003640 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003641 void *c;
3642 if (
3643 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3644 &&
3645 (a = named_expression_rule(p)) // named_expression
3646 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003647 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003648 &&
3649 (b = block_rule(p)) // block
3650 &&
3651 (c = else_block_rule(p), 1) // else_block?
3652 )
3653 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003654 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003655 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3656 if (_token == NULL) {
3657 D(p->level--);
3658 return NULL;
3659 }
3660 int _end_lineno = _token->end_lineno;
3661 UNUSED(_end_lineno); // Only used by EXTRA macro
3662 int _end_col_offset = _token->end_col_offset;
3663 UNUSED(_end_col_offset); // Only used by EXTRA macro
3664 _res = _Py_If ( a , b , c , EXTRA );
3665 if (_res == NULL && PyErr_Occurred()) {
3666 p->error_indicator = 1;
3667 D(p->level--);
3668 return NULL;
3669 }
3670 goto done;
3671 }
3672 p->mark = _mark;
3673 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003675 }
3676 _res = NULL;
3677 done:
3678 D(p->level--);
3679 return _res;
3680}
3681
3682// elif_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003683// | 'elif' named_expression &&':' block elif_stmt
3684// | 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003685static stmt_ty
3686elif_stmt_rule(Parser *p)
3687{
3688 D(p->level++);
3689 if (p->error_indicator) {
3690 D(p->level--);
3691 return NULL;
3692 }
3693 stmt_ty _res = NULL;
3694 int _mark = p->mark;
3695 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3696 p->error_indicator = 1;
3697 D(p->level--);
3698 return NULL;
3699 }
3700 int _start_lineno = p->tokens[_mark]->lineno;
3701 UNUSED(_start_lineno); // Only used by EXTRA macro
3702 int _start_col_offset = p->tokens[_mark]->col_offset;
3703 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003704 { // 'elif' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003705 if (p->error_indicator) {
3706 D(p->level--);
3707 return NULL;
3708 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003709 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003710 Token * _keyword;
3711 Token * _literal;
3712 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003713 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003714 stmt_ty c;
3715 if (
3716 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3717 &&
3718 (a = named_expression_rule(p)) // named_expression
3719 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003720 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003721 &&
3722 (b = block_rule(p)) // block
3723 &&
3724 (c = elif_stmt_rule(p)) // elif_stmt
3725 )
3726 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003727 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003728 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3729 if (_token == NULL) {
3730 D(p->level--);
3731 return NULL;
3732 }
3733 int _end_lineno = _token->end_lineno;
3734 UNUSED(_end_lineno); // Only used by EXTRA macro
3735 int _end_col_offset = _token->end_col_offset;
3736 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003737 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003738 if (_res == NULL && PyErr_Occurred()) {
3739 p->error_indicator = 1;
3740 D(p->level--);
3741 return NULL;
3742 }
3743 goto done;
3744 }
3745 p->mark = _mark;
3746 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003748 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003749 { // 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003750 if (p->error_indicator) {
3751 D(p->level--);
3752 return NULL;
3753 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003754 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003755 Token * _keyword;
3756 Token * _literal;
3757 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003758 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003759 void *c;
3760 if (
3761 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3762 &&
3763 (a = named_expression_rule(p)) // named_expression
3764 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003765 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003766 &&
3767 (b = block_rule(p)) // block
3768 &&
3769 (c = else_block_rule(p), 1) // else_block?
3770 )
3771 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003772 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003773 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3774 if (_token == NULL) {
3775 D(p->level--);
3776 return NULL;
3777 }
3778 int _end_lineno = _token->end_lineno;
3779 UNUSED(_end_lineno); // Only used by EXTRA macro
3780 int _end_col_offset = _token->end_col_offset;
3781 UNUSED(_end_col_offset); // Only used by EXTRA macro
3782 _res = _Py_If ( a , b , c , EXTRA );
3783 if (_res == NULL && PyErr_Occurred()) {
3784 p->error_indicator = 1;
3785 D(p->level--);
3786 return NULL;
3787 }
3788 goto done;
3789 }
3790 p->mark = _mark;
3791 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003793 }
3794 _res = NULL;
3795 done:
3796 D(p->level--);
3797 return _res;
3798}
3799
Pablo Galindo58fb1562021-02-02 19:54:22 +00003800// else_block: 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01003801static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003802else_block_rule(Parser *p)
3803{
3804 D(p->level++);
3805 if (p->error_indicator) {
3806 D(p->level--);
3807 return NULL;
3808 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003809 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003810 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +00003811 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003812 if (p->error_indicator) {
3813 D(p->level--);
3814 return NULL;
3815 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003816 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003817 Token * _keyword;
3818 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003819 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003820 if (
3821 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
3822 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003823 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003824 &&
3825 (b = block_rule(p)) // block
3826 )
3827 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003828 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003829 _res = b;
3830 if (_res == NULL && PyErr_Occurred()) {
3831 p->error_indicator = 1;
3832 D(p->level--);
3833 return NULL;
3834 }
3835 goto done;
3836 }
3837 p->mark = _mark;
3838 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003840 }
3841 _res = NULL;
3842 done:
3843 D(p->level--);
3844 return _res;
3845}
3846
Pablo Galindo58fb1562021-02-02 19:54:22 +00003847// while_stmt: 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003848static stmt_ty
3849while_stmt_rule(Parser *p)
3850{
3851 D(p->level++);
3852 if (p->error_indicator) {
3853 D(p->level--);
3854 return NULL;
3855 }
3856 stmt_ty _res = NULL;
3857 int _mark = p->mark;
3858 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3859 p->error_indicator = 1;
3860 D(p->level--);
3861 return NULL;
3862 }
3863 int _start_lineno = p->tokens[_mark]->lineno;
3864 UNUSED(_start_lineno); // Only used by EXTRA macro
3865 int _start_col_offset = p->tokens[_mark]->col_offset;
3866 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003867 { // 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003868 if (p->error_indicator) {
3869 D(p->level--);
3870 return NULL;
3871 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003872 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003873 Token * _keyword;
3874 Token * _literal;
3875 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003876 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003877 void *c;
3878 if (
3879 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
3880 &&
3881 (a = named_expression_rule(p)) // named_expression
3882 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003883 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003884 &&
3885 (b = block_rule(p)) // block
3886 &&
3887 (c = else_block_rule(p), 1) // else_block?
3888 )
3889 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003890 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003891 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3892 if (_token == NULL) {
3893 D(p->level--);
3894 return NULL;
3895 }
3896 int _end_lineno = _token->end_lineno;
3897 UNUSED(_end_lineno); // Only used by EXTRA macro
3898 int _end_col_offset = _token->end_col_offset;
3899 UNUSED(_end_col_offset); // Only used by EXTRA macro
3900 _res = _Py_While ( a , b , c , EXTRA );
3901 if (_res == NULL && PyErr_Occurred()) {
3902 p->error_indicator = 1;
3903 D(p->level--);
3904 return NULL;
3905 }
3906 goto done;
3907 }
3908 p->mark = _mark;
3909 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003911 }
3912 _res = NULL;
3913 done:
3914 D(p->level--);
3915 return _res;
3916}
3917
3918// for_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003919// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
3920// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003921// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003922static stmt_ty
3923for_stmt_rule(Parser *p)
3924{
3925 D(p->level++);
3926 if (p->error_indicator) {
3927 D(p->level--);
3928 return NULL;
3929 }
3930 stmt_ty _res = NULL;
3931 int _mark = p->mark;
3932 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3933 p->error_indicator = 1;
3934 D(p->level--);
3935 return NULL;
3936 }
3937 int _start_lineno = p->tokens[_mark]->lineno;
3938 UNUSED(_start_lineno); // Only used by EXTRA macro
3939 int _start_col_offset = p->tokens[_mark]->col_offset;
3940 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003941 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003942 if (p->error_indicator) {
3943 D(p->level--);
3944 return NULL;
3945 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003946 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003947 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003948 Token * _keyword;
3949 Token * _keyword_1;
3950 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003951 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003952 void *el;
3953 expr_ty ex;
3954 expr_ty t;
3955 void *tc;
3956 if (
3957 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
3958 &&
3959 (t = star_targets_rule(p)) // star_targets
3960 &&
3961 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
3962 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003963 (_cut_var = 1)
3964 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003965 (ex = star_expressions_rule(p)) // star_expressions
3966 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003967 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003968 &&
3969 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
3970 &&
3971 (b = block_rule(p)) // block
3972 &&
3973 (el = else_block_rule(p), 1) // else_block?
3974 )
3975 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003976 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003977 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3978 if (_token == NULL) {
3979 D(p->level--);
3980 return NULL;
3981 }
3982 int _end_lineno = _token->end_lineno;
3983 UNUSED(_end_lineno); // Only used by EXTRA macro
3984 int _end_col_offset = _token->end_col_offset;
3985 UNUSED(_end_col_offset); // Only used by EXTRA macro
3986 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3987 if (_res == NULL && PyErr_Occurred()) {
3988 p->error_indicator = 1;
3989 D(p->level--);
3990 return NULL;
3991 }
3992 goto done;
3993 }
3994 p->mark = _mark;
3995 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003997 if (_cut_var) {
3998 D(p->level--);
3999 return NULL;
4000 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004001 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004002 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004003 if (p->error_indicator) {
4004 D(p->level--);
4005 return NULL;
4006 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004007 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004008 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004009 Token * _keyword;
4010 Token * _keyword_1;
4011 Token * _literal;
4012 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004013 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004014 void *el;
4015 expr_ty ex;
4016 expr_ty t;
4017 void *tc;
4018 if (
4019 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4020 &&
4021 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4022 &&
4023 (t = star_targets_rule(p)) // star_targets
4024 &&
4025 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4026 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004027 (_cut_var = 1)
4028 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004029 (ex = star_expressions_rule(p)) // star_expressions
4030 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004031 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004032 &&
4033 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4034 &&
4035 (b = block_rule(p)) // block
4036 &&
4037 (el = else_block_rule(p), 1) // else_block?
4038 )
4039 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004040 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4042 if (_token == NULL) {
4043 D(p->level--);
4044 return NULL;
4045 }
4046 int _end_lineno = _token->end_lineno;
4047 UNUSED(_end_lineno); // Only used by EXTRA macro
4048 int _end_col_offset = _token->end_col_offset;
4049 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004050 _res = CHECK_VERSION ( stmt_ty , 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004051 if (_res == NULL && PyErr_Occurred()) {
4052 p->error_indicator = 1;
4053 D(p->level--);
4054 return NULL;
4055 }
4056 goto done;
4057 }
4058 p->mark = _mark;
4059 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004061 if (_cut_var) {
4062 D(p->level--);
4063 return NULL;
4064 }
4065 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004066 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004067 if (p->error_indicator) {
4068 D(p->level--);
4069 return NULL;
4070 }
4071 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4072 void *invalid_for_target_var;
4073 if (
4074 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4075 )
4076 {
4077 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4078 _res = invalid_for_target_var;
4079 goto done;
4080 }
4081 p->mark = _mark;
4082 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004084 }
4085 _res = NULL;
4086 done:
4087 D(p->level--);
4088 return _res;
4089}
4090
4091// with_stmt:
4092// | 'with' '(' ','.with_item+ ','? ')' ':' block
4093// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4094// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4095// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004096// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004097static stmt_ty
4098with_stmt_rule(Parser *p)
4099{
4100 D(p->level++);
4101 if (p->error_indicator) {
4102 D(p->level--);
4103 return NULL;
4104 }
4105 stmt_ty _res = NULL;
4106 int _mark = p->mark;
4107 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4108 p->error_indicator = 1;
4109 D(p->level--);
4110 return NULL;
4111 }
4112 int _start_lineno = p->tokens[_mark]->lineno;
4113 UNUSED(_start_lineno); // Only used by EXTRA macro
4114 int _start_col_offset = p->tokens[_mark]->col_offset;
4115 UNUSED(_start_col_offset); // Only used by EXTRA macro
4116 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4117 if (p->error_indicator) {
4118 D(p->level--);
4119 return NULL;
4120 }
4121 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4122 Token * _keyword;
4123 Token * _literal;
4124 Token * _literal_1;
4125 Token * _literal_2;
4126 void *_opt_var;
4127 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004128 asdl_withitem_seq* a;
4129 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004130 if (
4131 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4132 &&
4133 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4134 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004135 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004136 &&
4137 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4138 &&
4139 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4140 &&
4141 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4142 &&
4143 (b = block_rule(p)) // block
4144 )
4145 {
4146 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4147 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4148 if (_token == NULL) {
4149 D(p->level--);
4150 return NULL;
4151 }
4152 int _end_lineno = _token->end_lineno;
4153 UNUSED(_end_lineno); // Only used by EXTRA macro
4154 int _end_col_offset = _token->end_col_offset;
4155 UNUSED(_end_col_offset); // Only used by EXTRA macro
4156 _res = _Py_With ( a , b , NULL , EXTRA );
4157 if (_res == NULL && PyErr_Occurred()) {
4158 p->error_indicator = 1;
4159 D(p->level--);
4160 return NULL;
4161 }
4162 goto done;
4163 }
4164 p->mark = _mark;
4165 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4167 }
4168 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4169 if (p->error_indicator) {
4170 D(p->level--);
4171 return NULL;
4172 }
4173 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4174 Token * _keyword;
4175 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004176 asdl_withitem_seq* a;
4177 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004178 void *tc;
4179 if (
4180 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4181 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004182 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004183 &&
4184 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4185 &&
4186 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4187 &&
4188 (b = block_rule(p)) // block
4189 )
4190 {
4191 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4192 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4193 if (_token == NULL) {
4194 D(p->level--);
4195 return NULL;
4196 }
4197 int _end_lineno = _token->end_lineno;
4198 UNUSED(_end_lineno); // Only used by EXTRA macro
4199 int _end_col_offset = _token->end_col_offset;
4200 UNUSED(_end_col_offset); // Only used by EXTRA macro
4201 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4202 if (_res == NULL && PyErr_Occurred()) {
4203 p->error_indicator = 1;
4204 D(p->level--);
4205 return NULL;
4206 }
4207 goto done;
4208 }
4209 p->mark = _mark;
4210 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4212 }
4213 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4214 if (p->error_indicator) {
4215 D(p->level--);
4216 return NULL;
4217 }
4218 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4219 Token * _keyword;
4220 Token * _literal;
4221 Token * _literal_1;
4222 Token * _literal_2;
4223 void *_opt_var;
4224 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004225 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004226 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004227 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004228 if (
4229 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4230 &&
4231 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4232 &&
4233 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4234 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004235 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004236 &&
4237 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4238 &&
4239 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4240 &&
4241 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4242 &&
4243 (b = block_rule(p)) // block
4244 )
4245 {
4246 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4247 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4248 if (_token == NULL) {
4249 D(p->level--);
4250 return NULL;
4251 }
4252 int _end_lineno = _token->end_lineno;
4253 UNUSED(_end_lineno); // Only used by EXTRA macro
4254 int _end_col_offset = _token->end_col_offset;
4255 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004256 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004257 if (_res == NULL && PyErr_Occurred()) {
4258 p->error_indicator = 1;
4259 D(p->level--);
4260 return NULL;
4261 }
4262 goto done;
4263 }
4264 p->mark = _mark;
4265 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4267 }
4268 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4269 if (p->error_indicator) {
4270 D(p->level--);
4271 return NULL;
4272 }
4273 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4274 Token * _keyword;
4275 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004276 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004277 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004278 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004279 void *tc;
4280 if (
4281 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4282 &&
4283 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4284 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004285 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004286 &&
4287 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4288 &&
4289 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4290 &&
4291 (b = block_rule(p)) // block
4292 )
4293 {
4294 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4295 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4296 if (_token == NULL) {
4297 D(p->level--);
4298 return NULL;
4299 }
4300 int _end_lineno = _token->end_lineno;
4301 UNUSED(_end_lineno); // Only used by EXTRA macro
4302 int _end_col_offset = _token->end_col_offset;
4303 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004304 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004305 if (_res == NULL && PyErr_Occurred()) {
4306 p->error_indicator = 1;
4307 D(p->level--);
4308 return NULL;
4309 }
4310 goto done;
4311 }
4312 p->mark = _mark;
4313 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4315 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004316 if (p->call_invalid_rules) { // invalid_with_stmt
4317 if (p->error_indicator) {
4318 D(p->level--);
4319 return NULL;
4320 }
4321 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4322 void *invalid_with_stmt_var;
4323 if (
4324 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4325 )
4326 {
4327 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4328 _res = invalid_with_stmt_var;
4329 goto done;
4330 }
4331 p->mark = _mark;
4332 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4334 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004335 _res = NULL;
4336 done:
4337 D(p->level--);
4338 return _res;
4339}
4340
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004341// with_item:
4342// | expression 'as' star_target &(',' | ')' | ':')
4343// | invalid_with_item
4344// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004345static withitem_ty
4346with_item_rule(Parser *p)
4347{
4348 D(p->level++);
4349 if (p->error_indicator) {
4350 D(p->level--);
4351 return NULL;
4352 }
4353 withitem_ty _res = NULL;
4354 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004355 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004356 if (p->error_indicator) {
4357 D(p->level--);
4358 return NULL;
4359 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004360 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004361 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004362 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004363 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004364 if (
4365 (e = expression_rule(p)) // expression
4366 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004367 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4368 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004369 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004370 &&
4371 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004372 )
4373 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004374 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004375 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004376 if (_res == NULL && PyErr_Occurred()) {
4377 p->error_indicator = 1;
4378 D(p->level--);
4379 return NULL;
4380 }
4381 goto done;
4382 }
4383 p->mark = _mark;
4384 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004386 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004387 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004388 if (p->error_indicator) {
4389 D(p->level--);
4390 return NULL;
4391 }
4392 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4393 void *invalid_with_item_var;
4394 if (
4395 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4396 )
4397 {
4398 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4399 _res = invalid_with_item_var;
4400 goto done;
4401 }
4402 p->mark = _mark;
4403 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4405 }
4406 { // expression
4407 if (p->error_indicator) {
4408 D(p->level--);
4409 return NULL;
4410 }
4411 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4412 expr_ty e;
4413 if (
4414 (e = expression_rule(p)) // expression
4415 )
4416 {
4417 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4418 _res = _Py_withitem ( e , NULL , p -> arena );
4419 if (_res == NULL && PyErr_Occurred()) {
4420 p->error_indicator = 1;
4421 D(p->level--);
4422 return NULL;
4423 }
4424 goto done;
4425 }
4426 p->mark = _mark;
4427 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004429 }
4430 _res = NULL;
4431 done:
4432 D(p->level--);
4433 return _res;
4434}
4435
4436// try_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004437// | 'try' &&':' block finally_block
4438// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004439static stmt_ty
4440try_stmt_rule(Parser *p)
4441{
4442 D(p->level++);
4443 if (p->error_indicator) {
4444 D(p->level--);
4445 return NULL;
4446 }
4447 stmt_ty _res = NULL;
4448 int _mark = p->mark;
4449 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4450 p->error_indicator = 1;
4451 D(p->level--);
4452 return NULL;
4453 }
4454 int _start_lineno = p->tokens[_mark]->lineno;
4455 UNUSED(_start_lineno); // Only used by EXTRA macro
4456 int _start_col_offset = p->tokens[_mark]->col_offset;
4457 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004458 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004459 if (p->error_indicator) {
4460 D(p->level--);
4461 return NULL;
4462 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004463 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004464 Token * _keyword;
4465 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004466 asdl_stmt_seq* b;
4467 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004468 if (
4469 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4470 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004471 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004472 &&
4473 (b = block_rule(p)) // block
4474 &&
4475 (f = finally_block_rule(p)) // finally_block
4476 )
4477 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004478 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004479 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4480 if (_token == NULL) {
4481 D(p->level--);
4482 return NULL;
4483 }
4484 int _end_lineno = _token->end_lineno;
4485 UNUSED(_end_lineno); // Only used by EXTRA macro
4486 int _end_col_offset = _token->end_col_offset;
4487 UNUSED(_end_col_offset); // Only used by EXTRA macro
4488 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4489 if (_res == NULL && PyErr_Occurred()) {
4490 p->error_indicator = 1;
4491 D(p->level--);
4492 return NULL;
4493 }
4494 goto done;
4495 }
4496 p->mark = _mark;
4497 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004499 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004500 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004501 if (p->error_indicator) {
4502 D(p->level--);
4503 return NULL;
4504 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004505 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004506 Token * _keyword;
4507 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004508 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004509 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004510 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004511 void *f;
4512 if (
4513 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4514 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004515 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004516 &&
4517 (b = block_rule(p)) // block
4518 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004519 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004520 &&
4521 (el = else_block_rule(p), 1) // else_block?
4522 &&
4523 (f = finally_block_rule(p), 1) // finally_block?
4524 )
4525 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004526 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004527 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4528 if (_token == NULL) {
4529 D(p->level--);
4530 return NULL;
4531 }
4532 int _end_lineno = _token->end_lineno;
4533 UNUSED(_end_lineno); // Only used by EXTRA macro
4534 int _end_col_offset = _token->end_col_offset;
4535 UNUSED(_end_col_offset); // Only used by EXTRA macro
4536 _res = _Py_Try ( b , ex , el , f , EXTRA );
4537 if (_res == NULL && PyErr_Occurred()) {
4538 p->error_indicator = 1;
4539 D(p->level--);
4540 return NULL;
4541 }
4542 goto done;
4543 }
4544 p->mark = _mark;
4545 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004547 }
4548 _res = NULL;
4549 done:
4550 D(p->level--);
4551 return _res;
4552}
4553
Pablo Galindo58fb1562021-02-02 19:54:22 +00004554// except_block: 'except' expression ['as' NAME] &&':' block | 'except' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004555static excepthandler_ty
4556except_block_rule(Parser *p)
4557{
4558 D(p->level++);
4559 if (p->error_indicator) {
4560 D(p->level--);
4561 return NULL;
4562 }
4563 excepthandler_ty _res = NULL;
4564 int _mark = p->mark;
4565 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4566 p->error_indicator = 1;
4567 D(p->level--);
4568 return NULL;
4569 }
4570 int _start_lineno = p->tokens[_mark]->lineno;
4571 UNUSED(_start_lineno); // Only used by EXTRA macro
4572 int _start_col_offset = p->tokens[_mark]->col_offset;
4573 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004574 { // 'except' expression ['as' NAME] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004575 if (p->error_indicator) {
4576 D(p->level--);
4577 return NULL;
4578 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004579 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004580 Token * _keyword;
4581 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004582 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004583 expr_ty e;
4584 void *t;
4585 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004586 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004587 &&
4588 (e = expression_rule(p)) // expression
4589 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004590 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004591 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004592 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004593 &&
4594 (b = block_rule(p)) // block
4595 )
4596 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004597 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004598 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4599 if (_token == NULL) {
4600 D(p->level--);
4601 return NULL;
4602 }
4603 int _end_lineno = _token->end_lineno;
4604 UNUSED(_end_lineno); // Only used by EXTRA macro
4605 int _end_col_offset = _token->end_col_offset;
4606 UNUSED(_end_col_offset); // Only used by EXTRA macro
4607 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4608 if (_res == NULL && PyErr_Occurred()) {
4609 p->error_indicator = 1;
4610 D(p->level--);
4611 return NULL;
4612 }
4613 goto done;
4614 }
4615 p->mark = _mark;
4616 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004618 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004619 { // 'except' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004620 if (p->error_indicator) {
4621 D(p->level--);
4622 return NULL;
4623 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004624 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004625 Token * _keyword;
4626 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004627 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004628 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004629 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004630 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004631 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004632 &&
4633 (b = block_rule(p)) // block
4634 )
4635 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004636 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004637 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4638 if (_token == NULL) {
4639 D(p->level--);
4640 return NULL;
4641 }
4642 int _end_lineno = _token->end_lineno;
4643 UNUSED(_end_lineno); // Only used by EXTRA macro
4644 int _end_col_offset = _token->end_col_offset;
4645 UNUSED(_end_col_offset); // Only used by EXTRA macro
4646 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4647 if (_res == NULL && PyErr_Occurred()) {
4648 p->error_indicator = 1;
4649 D(p->level--);
4650 return NULL;
4651 }
4652 goto done;
4653 }
4654 p->mark = _mark;
4655 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004657 }
4658 _res = NULL;
4659 done:
4660 D(p->level--);
4661 return _res;
4662}
4663
4664// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004665static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004666finally_block_rule(Parser *p)
4667{
4668 D(p->level++);
4669 if (p->error_indicator) {
4670 D(p->level--);
4671 return NULL;
4672 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004673 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004674 int _mark = p->mark;
4675 { // 'finally' ':' block
4676 if (p->error_indicator) {
4677 D(p->level--);
4678 return NULL;
4679 }
4680 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4681 Token * _keyword;
4682 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004683 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004684 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004685 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004686 &&
4687 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4688 &&
4689 (a = block_rule(p)) // block
4690 )
4691 {
4692 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4693 _res = a;
4694 if (_res == NULL && PyErr_Occurred()) {
4695 p->error_indicator = 1;
4696 D(p->level--);
4697 return NULL;
4698 }
4699 goto done;
4700 }
4701 p->mark = _mark;
4702 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4704 }
4705 _res = NULL;
4706 done:
4707 D(p->level--);
4708 return _res;
4709}
4710
4711// return_stmt: 'return' star_expressions?
4712static stmt_ty
4713return_stmt_rule(Parser *p)
4714{
4715 D(p->level++);
4716 if (p->error_indicator) {
4717 D(p->level--);
4718 return NULL;
4719 }
4720 stmt_ty _res = NULL;
4721 int _mark = p->mark;
4722 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4723 p->error_indicator = 1;
4724 D(p->level--);
4725 return NULL;
4726 }
4727 int _start_lineno = p->tokens[_mark]->lineno;
4728 UNUSED(_start_lineno); // Only used by EXTRA macro
4729 int _start_col_offset = p->tokens[_mark]->col_offset;
4730 UNUSED(_start_col_offset); // Only used by EXTRA macro
4731 { // 'return' star_expressions?
4732 if (p->error_indicator) {
4733 D(p->level--);
4734 return NULL;
4735 }
4736 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4737 Token * _keyword;
4738 void *a;
4739 if (
4740 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
4741 &&
4742 (a = star_expressions_rule(p), 1) // star_expressions?
4743 )
4744 {
4745 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4746 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4747 if (_token == NULL) {
4748 D(p->level--);
4749 return NULL;
4750 }
4751 int _end_lineno = _token->end_lineno;
4752 UNUSED(_end_lineno); // Only used by EXTRA macro
4753 int _end_col_offset = _token->end_col_offset;
4754 UNUSED(_end_col_offset); // Only used by EXTRA macro
4755 _res = _Py_Return ( a , EXTRA );
4756 if (_res == NULL && PyErr_Occurred()) {
4757 p->error_indicator = 1;
4758 D(p->level--);
4759 return NULL;
4760 }
4761 goto done;
4762 }
4763 p->mark = _mark;
4764 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
4766 }
4767 _res = NULL;
4768 done:
4769 D(p->level--);
4770 return _res;
4771}
4772
4773// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4774static stmt_ty
4775raise_stmt_rule(Parser *p)
4776{
4777 D(p->level++);
4778 if (p->error_indicator) {
4779 D(p->level--);
4780 return NULL;
4781 }
4782 stmt_ty _res = NULL;
4783 int _mark = p->mark;
4784 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4785 p->error_indicator = 1;
4786 D(p->level--);
4787 return NULL;
4788 }
4789 int _start_lineno = p->tokens[_mark]->lineno;
4790 UNUSED(_start_lineno); // Only used by EXTRA macro
4791 int _start_col_offset = p->tokens[_mark]->col_offset;
4792 UNUSED(_start_col_offset); // Only used by EXTRA macro
4793 { // 'raise' expression ['from' expression]
4794 if (p->error_indicator) {
4795 D(p->level--);
4796 return NULL;
4797 }
4798 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4799 Token * _keyword;
4800 expr_ty a;
4801 void *b;
4802 if (
4803 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4804 &&
4805 (a = expression_rule(p)) // expression
4806 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004807 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004808 )
4809 {
4810 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4811 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4812 if (_token == NULL) {
4813 D(p->level--);
4814 return NULL;
4815 }
4816 int _end_lineno = _token->end_lineno;
4817 UNUSED(_end_lineno); // Only used by EXTRA macro
4818 int _end_col_offset = _token->end_col_offset;
4819 UNUSED(_end_col_offset); // Only used by EXTRA macro
4820 _res = _Py_Raise ( a , b , EXTRA );
4821 if (_res == NULL && PyErr_Occurred()) {
4822 p->error_indicator = 1;
4823 D(p->level--);
4824 return NULL;
4825 }
4826 goto done;
4827 }
4828 p->mark = _mark;
4829 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
4831 }
4832 { // 'raise'
4833 if (p->error_indicator) {
4834 D(p->level--);
4835 return NULL;
4836 }
4837 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
4838 Token * _keyword;
4839 if (
4840 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4841 )
4842 {
4843 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
4844 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4845 if (_token == NULL) {
4846 D(p->level--);
4847 return NULL;
4848 }
4849 int _end_lineno = _token->end_lineno;
4850 UNUSED(_end_lineno); // Only used by EXTRA macro
4851 int _end_col_offset = _token->end_col_offset;
4852 UNUSED(_end_col_offset); // Only used by EXTRA macro
4853 _res = _Py_Raise ( NULL , NULL , EXTRA );
4854 if (_res == NULL && PyErr_Occurred()) {
4855 p->error_indicator = 1;
4856 D(p->level--);
4857 return NULL;
4858 }
4859 goto done;
4860 }
4861 p->mark = _mark;
4862 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
4864 }
4865 _res = NULL;
4866 done:
4867 D(p->level--);
4868 return _res;
4869}
4870
4871// function_def: decorators function_def_raw | function_def_raw
4872static stmt_ty
4873function_def_rule(Parser *p)
4874{
4875 D(p->level++);
4876 if (p->error_indicator) {
4877 D(p->level--);
4878 return NULL;
4879 }
4880 stmt_ty _res = NULL;
4881 int _mark = p->mark;
4882 { // decorators function_def_raw
4883 if (p->error_indicator) {
4884 D(p->level--);
4885 return NULL;
4886 }
4887 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01004888 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004889 stmt_ty f;
4890 if (
4891 (d = decorators_rule(p)) // decorators
4892 &&
4893 (f = function_def_raw_rule(p)) // function_def_raw
4894 )
4895 {
4896 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
4897 _res = _PyPegen_function_def_decorators ( p , d , f );
4898 if (_res == NULL && PyErr_Occurred()) {
4899 p->error_indicator = 1;
4900 D(p->level--);
4901 return NULL;
4902 }
4903 goto done;
4904 }
4905 p->mark = _mark;
4906 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
4908 }
4909 { // function_def_raw
4910 if (p->error_indicator) {
4911 D(p->level--);
4912 return NULL;
4913 }
4914 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4915 stmt_ty function_def_raw_var;
4916 if (
4917 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
4918 )
4919 {
4920 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4921 _res = function_def_raw_var;
4922 goto done;
4923 }
4924 p->mark = _mark;
4925 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
4927 }
4928 _res = NULL;
4929 done:
4930 D(p->level--);
4931 return _res;
4932}
4933
4934// function_def_raw:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004935// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
4936// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004937static stmt_ty
4938function_def_raw_rule(Parser *p)
4939{
4940 D(p->level++);
4941 if (p->error_indicator) {
4942 D(p->level--);
4943 return NULL;
4944 }
4945 stmt_ty _res = NULL;
4946 int _mark = p->mark;
4947 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4948 p->error_indicator = 1;
4949 D(p->level--);
4950 return NULL;
4951 }
4952 int _start_lineno = p->tokens[_mark]->lineno;
4953 UNUSED(_start_lineno); // Only used by EXTRA macro
4954 int _start_col_offset = p->tokens[_mark]->col_offset;
4955 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004956 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004957 if (p->error_indicator) {
4958 D(p->level--);
4959 return NULL;
4960 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004961 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004962 Token * _keyword;
4963 Token * _literal;
4964 Token * _literal_1;
4965 Token * _literal_2;
4966 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004967 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004968 expr_ty n;
4969 void *params;
4970 void *tc;
4971 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004972 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004973 &&
4974 (n = _PyPegen_name_token(p)) // NAME
4975 &&
4976 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4977 &&
4978 (params = params_rule(p), 1) // params?
4979 &&
4980 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4981 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004982 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004983 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004984 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004985 &&
4986 (tc = func_type_comment_rule(p), 1) // func_type_comment?
4987 &&
4988 (b = block_rule(p)) // block
4989 )
4990 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004991 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004992 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4993 if (_token == NULL) {
4994 D(p->level--);
4995 return NULL;
4996 }
4997 int _end_lineno = _token->end_lineno;
4998 UNUSED(_end_lineno); // Only used by EXTRA macro
4999 int _end_col_offset = _token->end_col_offset;
5000 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03005001 _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005002 if (_res == NULL && PyErr_Occurred()) {
5003 p->error_indicator = 1;
5004 D(p->level--);
5005 return NULL;
5006 }
5007 goto done;
5008 }
5009 p->mark = _mark;
5010 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00005011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005012 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00005013 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005014 if (p->error_indicator) {
5015 D(p->level--);
5016 return NULL;
5017 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00005018 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005019 Token * _keyword;
5020 Token * _literal;
5021 Token * _literal_1;
5022 Token * _literal_2;
5023 void *a;
5024 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005025 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005026 expr_ty n;
5027 void *params;
5028 void *tc;
5029 if (
5030 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
5031 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005032 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005033 &&
5034 (n = _PyPegen_name_token(p)) // NAME
5035 &&
5036 (_literal = _PyPegen_expect_token(p, 7)) // token='('
5037 &&
5038 (params = params_rule(p), 1) // params?
5039 &&
5040 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
5041 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005042 (a = _tmp_52_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005043 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00005044 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005045 &&
5046 (tc = func_type_comment_rule(p), 1) // func_type_comment?
5047 &&
5048 (b = block_rule(p)) // block
5049 )
5050 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00005051 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005052 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5053 if (_token == NULL) {
5054 D(p->level--);
5055 return NULL;
5056 }
5057 int _end_lineno = _token->end_lineno;
5058 UNUSED(_end_lineno); // Only used by EXTRA macro
5059 int _end_col_offset = _token->end_col_offset;
5060 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03005061 _res = CHECK_VERSION ( stmt_ty , 5 , "Async functions are" , _Py_AsyncFunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005062 if (_res == NULL && PyErr_Occurred()) {
5063 p->error_indicator = 1;
5064 D(p->level--);
5065 return NULL;
5066 }
5067 goto done;
5068 }
5069 p->mark = _mark;
5070 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00005071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005072 }
5073 _res = NULL;
5074 done:
5075 D(p->level--);
5076 return _res;
5077}
5078
5079// func_type_comment:
5080// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5081// | invalid_double_type_comments
5082// | TYPE_COMMENT
5083static Token*
5084func_type_comment_rule(Parser *p)
5085{
5086 D(p->level++);
5087 if (p->error_indicator) {
5088 D(p->level--);
5089 return NULL;
5090 }
5091 Token* _res = NULL;
5092 int _mark = p->mark;
5093 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5094 if (p->error_indicator) {
5095 D(p->level--);
5096 return NULL;
5097 }
5098 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5099 Token * newline_var;
5100 Token * t;
5101 if (
5102 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5103 &&
5104 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5105 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005106 _PyPegen_lookahead(1, _tmp_53_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005107 )
5108 {
5109 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5110 _res = t;
5111 if (_res == NULL && PyErr_Occurred()) {
5112 p->error_indicator = 1;
5113 D(p->level--);
5114 return NULL;
5115 }
5116 goto done;
5117 }
5118 p->mark = _mark;
5119 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5121 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005122 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005123 if (p->error_indicator) {
5124 D(p->level--);
5125 return NULL;
5126 }
5127 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5128 void *invalid_double_type_comments_var;
5129 if (
5130 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
5131 )
5132 {
5133 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5134 _res = invalid_double_type_comments_var;
5135 goto done;
5136 }
5137 p->mark = _mark;
5138 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
5140 }
5141 { // TYPE_COMMENT
5142 if (p->error_indicator) {
5143 D(p->level--);
5144 return NULL;
5145 }
5146 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5147 Token * type_comment_var;
5148 if (
5149 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5150 )
5151 {
5152 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5153 _res = type_comment_var;
5154 goto done;
5155 }
5156 p->mark = _mark;
5157 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
5159 }
5160 _res = NULL;
5161 done:
5162 D(p->level--);
5163 return _res;
5164}
5165
5166// params: invalid_parameters | parameters
5167static arguments_ty
5168params_rule(Parser *p)
5169{
5170 D(p->level++);
5171 if (p->error_indicator) {
5172 D(p->level--);
5173 return NULL;
5174 }
5175 arguments_ty _res = NULL;
5176 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005177 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005178 if (p->error_indicator) {
5179 D(p->level--);
5180 return NULL;
5181 }
5182 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5183 void *invalid_parameters_var;
5184 if (
5185 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
5186 )
5187 {
5188 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5189 _res = invalid_parameters_var;
5190 goto done;
5191 }
5192 p->mark = _mark;
5193 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
5195 }
5196 { // parameters
5197 if (p->error_indicator) {
5198 D(p->level--);
5199 return NULL;
5200 }
5201 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
5202 arguments_ty parameters_var;
5203 if (
5204 (parameters_var = parameters_rule(p)) // parameters
5205 )
5206 {
5207 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
5208 _res = parameters_var;
5209 goto done;
5210 }
5211 p->mark = _mark;
5212 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
5214 }
5215 _res = NULL;
5216 done:
5217 D(p->level--);
5218 return _res;
5219}
5220
5221// parameters:
5222// | slash_no_default param_no_default* param_with_default* star_etc?
5223// | slash_with_default param_with_default* star_etc?
5224// | param_no_default+ param_with_default* star_etc?
5225// | param_with_default+ star_etc?
5226// | star_etc
5227static arguments_ty
5228parameters_rule(Parser *p)
5229{
5230 D(p->level++);
5231 if (p->error_indicator) {
5232 D(p->level--);
5233 return NULL;
5234 }
5235 arguments_ty _res = NULL;
5236 int _mark = p->mark;
5237 { // slash_no_default param_no_default* param_with_default* star_etc?
5238 if (p->error_indicator) {
5239 D(p->level--);
5240 return NULL;
5241 }
5242 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01005243 asdl_arg_seq* a;
5244 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005245 asdl_seq * c;
5246 void *d;
5247 if (
5248 (a = slash_no_default_rule(p)) // slash_no_default
5249 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01005250 (b = (asdl_arg_seq*)_loop0_54_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005251 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005252 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005253 &&
5254 (d = star_etc_rule(p), 1) // star_etc?
5255 )
5256 {
5257 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
5258 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5259 if (_res == NULL && PyErr_Occurred()) {
5260 p->error_indicator = 1;
5261 D(p->level--);
5262 return NULL;
5263 }
5264 goto done;
5265 }
5266 p->mark = _mark;
5267 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
5269 }
5270 { // slash_with_default param_with_default* star_etc?
5271 if (p->error_indicator) {
5272 D(p->level--);
5273 return NULL;
5274 }
5275 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5276 SlashWithDefault* a;
5277 asdl_seq * b;
5278 void *c;
5279 if (
5280 (a = slash_with_default_rule(p)) // slash_with_default
5281 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005282 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005283 &&
5284 (c = star_etc_rule(p), 1) // star_etc?
5285 )
5286 {
5287 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5288 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5289 if (_res == NULL && PyErr_Occurred()) {
5290 p->error_indicator = 1;
5291 D(p->level--);
5292 return NULL;
5293 }
5294 goto done;
5295 }
5296 p->mark = _mark;
5297 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5299 }
5300 { // param_no_default+ param_with_default* star_etc?
5301 if (p->error_indicator) {
5302 D(p->level--);
5303 return NULL;
5304 }
5305 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01005306 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005307 asdl_seq * b;
5308 void *c;
5309 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005310 (a = (asdl_arg_seq*)_loop1_57_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005311 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005312 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005313 &&
5314 (c = star_etc_rule(p), 1) // star_etc?
5315 )
5316 {
5317 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5318 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5319 if (_res == NULL && PyErr_Occurred()) {
5320 p->error_indicator = 1;
5321 D(p->level--);
5322 return NULL;
5323 }
5324 goto done;
5325 }
5326 p->mark = _mark;
5327 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5329 }
5330 { // param_with_default+ star_etc?
5331 if (p->error_indicator) {
5332 D(p->level--);
5333 return NULL;
5334 }
5335 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5336 asdl_seq * a;
5337 void *b;
5338 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005339 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005340 &&
5341 (b = star_etc_rule(p), 1) // star_etc?
5342 )
5343 {
5344 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5345 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5346 if (_res == NULL && PyErr_Occurred()) {
5347 p->error_indicator = 1;
5348 D(p->level--);
5349 return NULL;
5350 }
5351 goto done;
5352 }
5353 p->mark = _mark;
5354 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
5356 }
5357 { // star_etc
5358 if (p->error_indicator) {
5359 D(p->level--);
5360 return NULL;
5361 }
5362 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
5363 StarEtc* a;
5364 if (
5365 (a = star_etc_rule(p)) // star_etc
5366 )
5367 {
5368 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
5369 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5370 if (_res == NULL && PyErr_Occurred()) {
5371 p->error_indicator = 1;
5372 D(p->level--);
5373 return NULL;
5374 }
5375 goto done;
5376 }
5377 p->mark = _mark;
5378 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
5380 }
5381 _res = NULL;
5382 done:
5383 D(p->level--);
5384 return _res;
5385}
5386
5387// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01005388static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005389slash_no_default_rule(Parser *p)
5390{
5391 D(p->level++);
5392 if (p->error_indicator) {
5393 D(p->level--);
5394 return NULL;
5395 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005396 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005397 int _mark = p->mark;
5398 { // param_no_default+ '/' ','
5399 if (p->error_indicator) {
5400 D(p->level--);
5401 return NULL;
5402 }
5403 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5404 Token * _literal;
5405 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005406 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005407 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005408 (a = (asdl_arg_seq*)_loop1_60_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005409 &&
5410 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5411 &&
5412 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5413 )
5414 {
5415 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5416 _res = a;
5417 if (_res == NULL && PyErr_Occurred()) {
5418 p->error_indicator = 1;
5419 D(p->level--);
5420 return NULL;
5421 }
5422 goto done;
5423 }
5424 p->mark = _mark;
5425 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
5427 }
5428 { // param_no_default+ '/' &')'
5429 if (p->error_indicator) {
5430 D(p->level--);
5431 return NULL;
5432 }
5433 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5434 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005435 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005436 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005437 (a = (asdl_arg_seq*)_loop1_61_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005438 &&
5439 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5440 &&
5441 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5442 )
5443 {
5444 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5445 _res = a;
5446 if (_res == NULL && PyErr_Occurred()) {
5447 p->error_indicator = 1;
5448 D(p->level--);
5449 return NULL;
5450 }
5451 goto done;
5452 }
5453 p->mark = _mark;
5454 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
5456 }
5457 _res = NULL;
5458 done:
5459 D(p->level--);
5460 return _res;
5461}
5462
5463// slash_with_default:
5464// | param_no_default* param_with_default+ '/' ','
5465// | param_no_default* param_with_default+ '/' &')'
5466static SlashWithDefault*
5467slash_with_default_rule(Parser *p)
5468{
5469 D(p->level++);
5470 if (p->error_indicator) {
5471 D(p->level--);
5472 return NULL;
5473 }
5474 SlashWithDefault* _res = NULL;
5475 int _mark = p->mark;
5476 { // param_no_default* param_with_default+ '/' ','
5477 if (p->error_indicator) {
5478 D(p->level--);
5479 return NULL;
5480 }
5481 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5482 Token * _literal;
5483 Token * _literal_1;
5484 asdl_seq * a;
5485 asdl_seq * b;
5486 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005487 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005488 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005489 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005490 &&
5491 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5492 &&
5493 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5494 )
5495 {
5496 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01005497 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005498 if (_res == NULL && PyErr_Occurred()) {
5499 p->error_indicator = 1;
5500 D(p->level--);
5501 return NULL;
5502 }
5503 goto done;
5504 }
5505 p->mark = _mark;
5506 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5508 }
5509 { // param_no_default* param_with_default+ '/' &')'
5510 if (p->error_indicator) {
5511 D(p->level--);
5512 return NULL;
5513 }
5514 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5515 Token * _literal;
5516 asdl_seq * a;
5517 asdl_seq * b;
5518 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005519 (a = _loop0_64_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005520 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005521 (b = _loop1_65_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005522 &&
5523 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5524 &&
5525 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5526 )
5527 {
5528 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01005529 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005530 if (_res == NULL && PyErr_Occurred()) {
5531 p->error_indicator = 1;
5532 D(p->level--);
5533 return NULL;
5534 }
5535 goto done;
5536 }
5537 p->mark = _mark;
5538 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5540 }
5541 _res = NULL;
5542 done:
5543 D(p->level--);
5544 return _res;
5545}
5546
5547// star_etc:
5548// | '*' param_no_default param_maybe_default* kwds?
5549// | '*' ',' param_maybe_default+ kwds?
5550// | kwds
5551// | invalid_star_etc
5552static StarEtc*
5553star_etc_rule(Parser *p)
5554{
5555 D(p->level++);
5556 if (p->error_indicator) {
5557 D(p->level--);
5558 return NULL;
5559 }
5560 StarEtc* _res = NULL;
5561 int _mark = p->mark;
5562 { // '*' param_no_default param_maybe_default* kwds?
5563 if (p->error_indicator) {
5564 D(p->level--);
5565 return NULL;
5566 }
5567 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5568 Token * _literal;
5569 arg_ty a;
5570 asdl_seq * b;
5571 void *c;
5572 if (
5573 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5574 &&
5575 (a = param_no_default_rule(p)) // param_no_default
5576 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005577 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005578 &&
5579 (c = kwds_rule(p), 1) // kwds?
5580 )
5581 {
5582 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5583 _res = _PyPegen_star_etc ( p , a , b , c );
5584 if (_res == NULL && PyErr_Occurred()) {
5585 p->error_indicator = 1;
5586 D(p->level--);
5587 return NULL;
5588 }
5589 goto done;
5590 }
5591 p->mark = _mark;
5592 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5594 }
5595 { // '*' ',' param_maybe_default+ kwds?
5596 if (p->error_indicator) {
5597 D(p->level--);
5598 return NULL;
5599 }
5600 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5601 Token * _literal;
5602 Token * _literal_1;
5603 asdl_seq * b;
5604 void *c;
5605 if (
5606 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5607 &&
5608 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5609 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005610 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005611 &&
5612 (c = kwds_rule(p), 1) // kwds?
5613 )
5614 {
5615 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5616 _res = _PyPegen_star_etc ( p , NULL , b , c );
5617 if (_res == NULL && PyErr_Occurred()) {
5618 p->error_indicator = 1;
5619 D(p->level--);
5620 return NULL;
5621 }
5622 goto done;
5623 }
5624 p->mark = _mark;
5625 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5627 }
5628 { // kwds
5629 if (p->error_indicator) {
5630 D(p->level--);
5631 return NULL;
5632 }
5633 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
5634 arg_ty a;
5635 if (
5636 (a = kwds_rule(p)) // kwds
5637 )
5638 {
5639 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
5640 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5641 if (_res == NULL && PyErr_Occurred()) {
5642 p->error_indicator = 1;
5643 D(p->level--);
5644 return NULL;
5645 }
5646 goto done;
5647 }
5648 p->mark = _mark;
5649 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
5651 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005652 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005653 if (p->error_indicator) {
5654 D(p->level--);
5655 return NULL;
5656 }
5657 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5658 void *invalid_star_etc_var;
5659 if (
5660 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
5661 )
5662 {
5663 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5664 _res = invalid_star_etc_var;
5665 goto done;
5666 }
5667 p->mark = _mark;
5668 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
5670 }
5671 _res = NULL;
5672 done:
5673 D(p->level--);
5674 return _res;
5675}
5676
5677// kwds: '**' param_no_default
5678static arg_ty
5679kwds_rule(Parser *p)
5680{
5681 D(p->level++);
5682 if (p->error_indicator) {
5683 D(p->level--);
5684 return NULL;
5685 }
5686 arg_ty _res = NULL;
5687 int _mark = p->mark;
5688 { // '**' param_no_default
5689 if (p->error_indicator) {
5690 D(p->level--);
5691 return NULL;
5692 }
5693 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5694 Token * _literal;
5695 arg_ty a;
5696 if (
5697 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
5698 &&
5699 (a = param_no_default_rule(p)) // param_no_default
5700 )
5701 {
5702 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5703 _res = a;
5704 if (_res == NULL && PyErr_Occurred()) {
5705 p->error_indicator = 1;
5706 D(p->level--);
5707 return NULL;
5708 }
5709 goto done;
5710 }
5711 p->mark = _mark;
5712 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
5714 }
5715 _res = NULL;
5716 done:
5717 D(p->level--);
5718 return _res;
5719}
5720
5721// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5722static arg_ty
5723param_no_default_rule(Parser *p)
5724{
5725 D(p->level++);
5726 if (p->error_indicator) {
5727 D(p->level--);
5728 return NULL;
5729 }
5730 arg_ty _res = NULL;
5731 int _mark = p->mark;
5732 { // param ',' TYPE_COMMENT?
5733 if (p->error_indicator) {
5734 D(p->level--);
5735 return NULL;
5736 }
5737 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5738 Token * _literal;
5739 arg_ty a;
5740 void *tc;
5741 if (
5742 (a = param_rule(p)) // param
5743 &&
5744 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5745 &&
5746 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5747 )
5748 {
5749 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5750 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5751 if (_res == NULL && PyErr_Occurred()) {
5752 p->error_indicator = 1;
5753 D(p->level--);
5754 return NULL;
5755 }
5756 goto done;
5757 }
5758 p->mark = _mark;
5759 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
5761 }
5762 { // param TYPE_COMMENT? &')'
5763 if (p->error_indicator) {
5764 D(p->level--);
5765 return NULL;
5766 }
5767 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5768 arg_ty a;
5769 void *tc;
5770 if (
5771 (a = param_rule(p)) // param
5772 &&
5773 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5774 &&
5775 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5776 )
5777 {
5778 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5779 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5780 if (_res == NULL && PyErr_Occurred()) {
5781 p->error_indicator = 1;
5782 D(p->level--);
5783 return NULL;
5784 }
5785 goto done;
5786 }
5787 p->mark = _mark;
5788 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
5790 }
5791 _res = NULL;
5792 done:
5793 D(p->level--);
5794 return _res;
5795}
5796
5797// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
5798static NameDefaultPair*
5799param_with_default_rule(Parser *p)
5800{
5801 D(p->level++);
5802 if (p->error_indicator) {
5803 D(p->level--);
5804 return NULL;
5805 }
5806 NameDefaultPair* _res = NULL;
5807 int _mark = p->mark;
5808 { // param default ',' TYPE_COMMENT?
5809 if (p->error_indicator) {
5810 D(p->level--);
5811 return NULL;
5812 }
5813 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5814 Token * _literal;
5815 arg_ty a;
5816 expr_ty c;
5817 void *tc;
5818 if (
5819 (a = param_rule(p)) // param
5820 &&
5821 (c = default_rule(p)) // default
5822 &&
5823 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5824 &&
5825 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5826 )
5827 {
5828 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5829 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5830 if (_res == NULL && PyErr_Occurred()) {
5831 p->error_indicator = 1;
5832 D(p->level--);
5833 return NULL;
5834 }
5835 goto done;
5836 }
5837 p->mark = _mark;
5838 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5840 }
5841 { // param default TYPE_COMMENT? &')'
5842 if (p->error_indicator) {
5843 D(p->level--);
5844 return NULL;
5845 }
5846 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5847 arg_ty a;
5848 expr_ty c;
5849 void *tc;
5850 if (
5851 (a = param_rule(p)) // param
5852 &&
5853 (c = default_rule(p)) // default
5854 &&
5855 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5856 &&
5857 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5858 )
5859 {
5860 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5861 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5862 if (_res == NULL && PyErr_Occurred()) {
5863 p->error_indicator = 1;
5864 D(p->level--);
5865 return NULL;
5866 }
5867 goto done;
5868 }
5869 p->mark = _mark;
5870 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5872 }
5873 _res = NULL;
5874 done:
5875 D(p->level--);
5876 return _res;
5877}
5878
5879// param_maybe_default:
5880// | param default? ',' TYPE_COMMENT?
5881// | param default? TYPE_COMMENT? &')'
5882static NameDefaultPair*
5883param_maybe_default_rule(Parser *p)
5884{
5885 D(p->level++);
5886 if (p->error_indicator) {
5887 D(p->level--);
5888 return NULL;
5889 }
5890 NameDefaultPair* _res = NULL;
5891 int _mark = p->mark;
5892 { // param default? ',' TYPE_COMMENT?
5893 if (p->error_indicator) {
5894 D(p->level--);
5895 return NULL;
5896 }
5897 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5898 Token * _literal;
5899 arg_ty a;
5900 void *c;
5901 void *tc;
5902 if (
5903 (a = param_rule(p)) // param
5904 &&
5905 (c = default_rule(p), 1) // default?
5906 &&
5907 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5908 &&
5909 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5910 )
5911 {
5912 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5913 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5914 if (_res == NULL && PyErr_Occurred()) {
5915 p->error_indicator = 1;
5916 D(p->level--);
5917 return NULL;
5918 }
5919 goto done;
5920 }
5921 p->mark = _mark;
5922 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5924 }
5925 { // param default? TYPE_COMMENT? &')'
5926 if (p->error_indicator) {
5927 D(p->level--);
5928 return NULL;
5929 }
5930 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5931 arg_ty a;
5932 void *c;
5933 void *tc;
5934 if (
5935 (a = param_rule(p)) // param
5936 &&
5937 (c = default_rule(p), 1) // default?
5938 &&
5939 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5940 &&
5941 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5942 )
5943 {
5944 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5945 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5946 if (_res == NULL && PyErr_Occurred()) {
5947 p->error_indicator = 1;
5948 D(p->level--);
5949 return NULL;
5950 }
5951 goto done;
5952 }
5953 p->mark = _mark;
5954 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5956 }
5957 _res = NULL;
5958 done:
5959 D(p->level--);
5960 return _res;
5961}
5962
5963// param: NAME annotation?
5964static arg_ty
5965param_rule(Parser *p)
5966{
5967 D(p->level++);
5968 if (p->error_indicator) {
5969 D(p->level--);
5970 return NULL;
5971 }
5972 arg_ty _res = NULL;
5973 int _mark = p->mark;
5974 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5975 p->error_indicator = 1;
5976 D(p->level--);
5977 return NULL;
5978 }
5979 int _start_lineno = p->tokens[_mark]->lineno;
5980 UNUSED(_start_lineno); // Only used by EXTRA macro
5981 int _start_col_offset = p->tokens[_mark]->col_offset;
5982 UNUSED(_start_col_offset); // Only used by EXTRA macro
5983 { // NAME annotation?
5984 if (p->error_indicator) {
5985 D(p->level--);
5986 return NULL;
5987 }
5988 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5989 expr_ty a;
5990 void *b;
5991 if (
5992 (a = _PyPegen_name_token(p)) // NAME
5993 &&
5994 (b = annotation_rule(p), 1) // annotation?
5995 )
5996 {
5997 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5998 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5999 if (_token == NULL) {
6000 D(p->level--);
6001 return NULL;
6002 }
6003 int _end_lineno = _token->end_lineno;
6004 UNUSED(_end_lineno); // Only used by EXTRA macro
6005 int _end_col_offset = _token->end_col_offset;
6006 UNUSED(_end_col_offset); // Only used by EXTRA macro
6007 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
6008 if (_res == NULL && PyErr_Occurred()) {
6009 p->error_indicator = 1;
6010 D(p->level--);
6011 return NULL;
6012 }
6013 goto done;
6014 }
6015 p->mark = _mark;
6016 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
6017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
6018 }
6019 _res = NULL;
6020 done:
6021 D(p->level--);
6022 return _res;
6023}
6024
6025// annotation: ':' expression
6026static expr_ty
6027annotation_rule(Parser *p)
6028{
6029 D(p->level++);
6030 if (p->error_indicator) {
6031 D(p->level--);
6032 return NULL;
6033 }
6034 expr_ty _res = NULL;
6035 int _mark = p->mark;
6036 { // ':' expression
6037 if (p->error_indicator) {
6038 D(p->level--);
6039 return NULL;
6040 }
6041 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
6042 Token * _literal;
6043 expr_ty a;
6044 if (
6045 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6046 &&
6047 (a = expression_rule(p)) // expression
6048 )
6049 {
6050 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
6051 _res = a;
6052 if (_res == NULL && PyErr_Occurred()) {
6053 p->error_indicator = 1;
6054 D(p->level--);
6055 return NULL;
6056 }
6057 goto done;
6058 }
6059 p->mark = _mark;
6060 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
6062 }
6063 _res = NULL;
6064 done:
6065 D(p->level--);
6066 return _res;
6067}
6068
6069// default: '=' expression
6070static expr_ty
6071default_rule(Parser *p)
6072{
6073 D(p->level++);
6074 if (p->error_indicator) {
6075 D(p->level--);
6076 return NULL;
6077 }
6078 expr_ty _res = NULL;
6079 int _mark = p->mark;
6080 { // '=' expression
6081 if (p->error_indicator) {
6082 D(p->level--);
6083 return NULL;
6084 }
6085 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6086 Token * _literal;
6087 expr_ty a;
6088 if (
6089 (_literal = _PyPegen_expect_token(p, 22)) // token='='
6090 &&
6091 (a = expression_rule(p)) // expression
6092 )
6093 {
6094 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6095 _res = a;
6096 if (_res == NULL && PyErr_Occurred()) {
6097 p->error_indicator = 1;
6098 D(p->level--);
6099 return NULL;
6100 }
6101 goto done;
6102 }
6103 p->mark = _mark;
6104 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
6106 }
6107 _res = NULL;
6108 done:
6109 D(p->level--);
6110 return _res;
6111}
6112
6113// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01006114static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006115decorators_rule(Parser *p)
6116{
6117 D(p->level++);
6118 if (p->error_indicator) {
6119 D(p->level--);
6120 return NULL;
6121 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006122 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006123 int _mark = p->mark;
6124 { // (('@' named_expression NEWLINE))+
6125 if (p->error_indicator) {
6126 D(p->level--);
6127 return NULL;
6128 }
6129 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01006130 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006131 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01006132 (a = (asdl_expr_seq*)_loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006133 )
6134 {
6135 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6136 _res = a;
6137 if (_res == NULL && PyErr_Occurred()) {
6138 p->error_indicator = 1;
6139 D(p->level--);
6140 return NULL;
6141 }
6142 goto done;
6143 }
6144 p->mark = _mark;
6145 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6147 }
6148 _res = NULL;
6149 done:
6150 D(p->level--);
6151 return _res;
6152}
6153
6154// class_def: decorators class_def_raw | class_def_raw
6155static stmt_ty
6156class_def_rule(Parser *p)
6157{
6158 D(p->level++);
6159 if (p->error_indicator) {
6160 D(p->level--);
6161 return NULL;
6162 }
6163 stmt_ty _res = NULL;
6164 int _mark = p->mark;
6165 { // decorators class_def_raw
6166 if (p->error_indicator) {
6167 D(p->level--);
6168 return NULL;
6169 }
6170 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01006171 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006172 stmt_ty b;
6173 if (
6174 (a = decorators_rule(p)) // decorators
6175 &&
6176 (b = class_def_raw_rule(p)) // class_def_raw
6177 )
6178 {
6179 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
6180 _res = _PyPegen_class_def_decorators ( p , a , b );
6181 if (_res == NULL && PyErr_Occurred()) {
6182 p->error_indicator = 1;
6183 D(p->level--);
6184 return NULL;
6185 }
6186 goto done;
6187 }
6188 p->mark = _mark;
6189 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
6191 }
6192 { // class_def_raw
6193 if (p->error_indicator) {
6194 D(p->level--);
6195 return NULL;
6196 }
6197 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6198 stmt_ty class_def_raw_var;
6199 if (
6200 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
6201 )
6202 {
6203 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6204 _res = class_def_raw_var;
6205 goto done;
6206 }
6207 p->mark = _mark;
6208 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
6210 }
6211 _res = NULL;
6212 done:
6213 D(p->level--);
6214 return _res;
6215}
6216
Pablo Galindo58fb1562021-02-02 19:54:22 +00006217// class_def_raw: 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006218static stmt_ty
6219class_def_raw_rule(Parser *p)
6220{
6221 D(p->level++);
6222 if (p->error_indicator) {
6223 D(p->level--);
6224 return NULL;
6225 }
6226 stmt_ty _res = NULL;
6227 int _mark = p->mark;
6228 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6229 p->error_indicator = 1;
6230 D(p->level--);
6231 return NULL;
6232 }
6233 int _start_lineno = p->tokens[_mark]->lineno;
6234 UNUSED(_start_lineno); // Only used by EXTRA macro
6235 int _start_col_offset = p->tokens[_mark]->col_offset;
6236 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00006237 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006238 if (p->error_indicator) {
6239 D(p->level--);
6240 return NULL;
6241 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00006242 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006243 Token * _keyword;
6244 Token * _literal;
6245 expr_ty a;
6246 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01006247 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006248 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006249 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006250 &&
6251 (a = _PyPegen_name_token(p)) // NAME
6252 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006253 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006254 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00006255 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006256 &&
6257 (c = block_rule(p)) // block
6258 )
6259 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00006260 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006261 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6262 if (_token == NULL) {
6263 D(p->level--);
6264 return NULL;
6265 }
6266 int _end_lineno = _token->end_lineno;
6267 UNUSED(_end_lineno); // Only used by EXTRA macro
6268 int _end_col_offset = _token->end_col_offset;
6269 UNUSED(_end_col_offset); // Only used by EXTRA macro
6270 _res = _Py_ClassDef ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , c , NULL , EXTRA );
6271 if (_res == NULL && PyErr_Occurred()) {
6272 p->error_indicator = 1;
6273 D(p->level--);
6274 return NULL;
6275 }
6276 goto done;
6277 }
6278 p->mark = _mark;
6279 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00006280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006281 }
6282 _res = NULL;
6283 done:
6284 D(p->level--);
6285 return _res;
6286}
6287
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006288// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01006289static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006290block_rule(Parser *p)
6291{
6292 D(p->level++);
6293 if (p->error_indicator) {
6294 D(p->level--);
6295 return NULL;
6296 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006297 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006298 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6299 D(p->level--);
6300 return _res;
6301 }
6302 int _mark = p->mark;
6303 { // NEWLINE INDENT statements DEDENT
6304 if (p->error_indicator) {
6305 D(p->level--);
6306 return NULL;
6307 }
6308 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01006309 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006310 Token * dedent_var;
6311 Token * indent_var;
6312 Token * newline_var;
6313 if (
6314 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
6315 &&
6316 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
6317 &&
6318 (a = statements_rule(p)) // statements
6319 &&
6320 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
6321 )
6322 {
6323 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6324 _res = a;
6325 if (_res == NULL && PyErr_Occurred()) {
6326 p->error_indicator = 1;
6327 D(p->level--);
6328 return NULL;
6329 }
6330 goto done;
6331 }
6332 p->mark = _mark;
6333 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6335 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006336 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006337 if (p->error_indicator) {
6338 D(p->level--);
6339 return NULL;
6340 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006341 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6342 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006343 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006344 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006345 )
6346 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006347 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6348 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006349 goto done;
6350 }
6351 p->mark = _mark;
6352 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006354 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006355 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006356 if (p->error_indicator) {
6357 D(p->level--);
6358 return NULL;
6359 }
6360 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6361 void *invalid_block_var;
6362 if (
6363 (invalid_block_var = invalid_block_rule(p)) // invalid_block
6364 )
6365 {
6366 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6367 _res = invalid_block_var;
6368 goto done;
6369 }
6370 p->mark = _mark;
6371 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
6373 }
6374 _res = NULL;
6375 done:
6376 _PyPegen_insert_memo(p, _mark, block_type, _res);
6377 D(p->level--);
6378 return _res;
6379}
6380
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006381// star_expressions:
6382// | star_expression ((',' star_expression))+ ','?
6383// | star_expression ','
6384// | star_expression
6385static expr_ty
6386star_expressions_rule(Parser *p)
6387{
6388 D(p->level++);
6389 if (p->error_indicator) {
6390 D(p->level--);
6391 return NULL;
6392 }
6393 expr_ty _res = NULL;
6394 int _mark = p->mark;
6395 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6396 p->error_indicator = 1;
6397 D(p->level--);
6398 return NULL;
6399 }
6400 int _start_lineno = p->tokens[_mark]->lineno;
6401 UNUSED(_start_lineno); // Only used by EXTRA macro
6402 int _start_col_offset = p->tokens[_mark]->col_offset;
6403 UNUSED(_start_col_offset); // Only used by EXTRA macro
6404 { // star_expression ((',' star_expression))+ ','?
6405 if (p->error_indicator) {
6406 D(p->level--);
6407 return NULL;
6408 }
6409 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6410 void *_opt_var;
6411 UNUSED(_opt_var); // Silence compiler warnings
6412 expr_ty a;
6413 asdl_seq * b;
6414 if (
6415 (a = star_expression_rule(p)) // star_expression
6416 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006417 (b = _loop1_70_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006418 &&
6419 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6420 )
6421 {
6422 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6423 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6424 if (_token == NULL) {
6425 D(p->level--);
6426 return NULL;
6427 }
6428 int _end_lineno = _token->end_lineno;
6429 UNUSED(_end_lineno); // Only used by EXTRA macro
6430 int _end_col_offset = _token->end_col_offset;
6431 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006432 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006433 if (_res == NULL && PyErr_Occurred()) {
6434 p->error_indicator = 1;
6435 D(p->level--);
6436 return NULL;
6437 }
6438 goto done;
6439 }
6440 p->mark = _mark;
6441 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6443 }
6444 { // star_expression ','
6445 if (p->error_indicator) {
6446 D(p->level--);
6447 return NULL;
6448 }
6449 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6450 Token * _literal;
6451 expr_ty a;
6452 if (
6453 (a = star_expression_rule(p)) // star_expression
6454 &&
6455 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6456 )
6457 {
6458 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6459 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6460 if (_token == NULL) {
6461 D(p->level--);
6462 return NULL;
6463 }
6464 int _end_lineno = _token->end_lineno;
6465 UNUSED(_end_lineno); // Only used by EXTRA macro
6466 int _end_col_offset = _token->end_col_offset;
6467 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006468 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006469 if (_res == NULL && PyErr_Occurred()) {
6470 p->error_indicator = 1;
6471 D(p->level--);
6472 return NULL;
6473 }
6474 goto done;
6475 }
6476 p->mark = _mark;
6477 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
6479 }
6480 { // star_expression
6481 if (p->error_indicator) {
6482 D(p->level--);
6483 return NULL;
6484 }
6485 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
6486 expr_ty star_expression_var;
6487 if (
6488 (star_expression_var = star_expression_rule(p)) // star_expression
6489 )
6490 {
6491 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
6492 _res = star_expression_var;
6493 goto done;
6494 }
6495 p->mark = _mark;
6496 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
6498 }
6499 _res = NULL;
6500 done:
6501 D(p->level--);
6502 return _res;
6503}
6504
6505// star_expression: '*' bitwise_or | expression
6506static expr_ty
6507star_expression_rule(Parser *p)
6508{
6509 D(p->level++);
6510 if (p->error_indicator) {
6511 D(p->level--);
6512 return NULL;
6513 }
6514 expr_ty _res = NULL;
6515 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6516 D(p->level--);
6517 return _res;
6518 }
6519 int _mark = p->mark;
6520 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6521 p->error_indicator = 1;
6522 D(p->level--);
6523 return NULL;
6524 }
6525 int _start_lineno = p->tokens[_mark]->lineno;
6526 UNUSED(_start_lineno); // Only used by EXTRA macro
6527 int _start_col_offset = p->tokens[_mark]->col_offset;
6528 UNUSED(_start_col_offset); // Only used by EXTRA macro
6529 { // '*' bitwise_or
6530 if (p->error_indicator) {
6531 D(p->level--);
6532 return NULL;
6533 }
6534 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6535 Token * _literal;
6536 expr_ty a;
6537 if (
6538 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6539 &&
6540 (a = bitwise_or_rule(p)) // bitwise_or
6541 )
6542 {
6543 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6544 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6545 if (_token == NULL) {
6546 D(p->level--);
6547 return NULL;
6548 }
6549 int _end_lineno = _token->end_lineno;
6550 UNUSED(_end_lineno); // Only used by EXTRA macro
6551 int _end_col_offset = _token->end_col_offset;
6552 UNUSED(_end_col_offset); // Only used by EXTRA macro
6553 _res = _Py_Starred ( a , Load , EXTRA );
6554 if (_res == NULL && PyErr_Occurred()) {
6555 p->error_indicator = 1;
6556 D(p->level--);
6557 return NULL;
6558 }
6559 goto done;
6560 }
6561 p->mark = _mark;
6562 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6564 }
6565 { // expression
6566 if (p->error_indicator) {
6567 D(p->level--);
6568 return NULL;
6569 }
6570 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6571 expr_ty expression_var;
6572 if (
6573 (expression_var = expression_rule(p)) // expression
6574 )
6575 {
6576 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6577 _res = expression_var;
6578 goto done;
6579 }
6580 p->mark = _mark;
6581 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6583 }
6584 _res = NULL;
6585 done:
6586 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
6587 D(p->level--);
6588 return _res;
6589}
6590
6591// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01006592static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006593star_named_expressions_rule(Parser *p)
6594{
6595 D(p->level++);
6596 if (p->error_indicator) {
6597 D(p->level--);
6598 return NULL;
6599 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006600 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006601 int _mark = p->mark;
6602 { // ','.star_named_expression+ ','?
6603 if (p->error_indicator) {
6604 D(p->level--);
6605 return NULL;
6606 }
6607 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6608 void *_opt_var;
6609 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01006610 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006611 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006612 (a = (asdl_expr_seq*)_gather_71_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006613 &&
6614 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6615 )
6616 {
6617 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6618 _res = a;
6619 if (_res == NULL && PyErr_Occurred()) {
6620 p->error_indicator = 1;
6621 D(p->level--);
6622 return NULL;
6623 }
6624 goto done;
6625 }
6626 p->mark = _mark;
6627 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
6629 }
6630 _res = NULL;
6631 done:
6632 D(p->level--);
6633 return _res;
6634}
6635
6636// star_named_expression: '*' bitwise_or | named_expression
6637static expr_ty
6638star_named_expression_rule(Parser *p)
6639{
6640 D(p->level++);
6641 if (p->error_indicator) {
6642 D(p->level--);
6643 return NULL;
6644 }
6645 expr_ty _res = NULL;
6646 int _mark = p->mark;
6647 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6648 p->error_indicator = 1;
6649 D(p->level--);
6650 return NULL;
6651 }
6652 int _start_lineno = p->tokens[_mark]->lineno;
6653 UNUSED(_start_lineno); // Only used by EXTRA macro
6654 int _start_col_offset = p->tokens[_mark]->col_offset;
6655 UNUSED(_start_col_offset); // Only used by EXTRA macro
6656 { // '*' bitwise_or
6657 if (p->error_indicator) {
6658 D(p->level--);
6659 return NULL;
6660 }
6661 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6662 Token * _literal;
6663 expr_ty a;
6664 if (
6665 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6666 &&
6667 (a = bitwise_or_rule(p)) // bitwise_or
6668 )
6669 {
6670 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6671 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6672 if (_token == NULL) {
6673 D(p->level--);
6674 return NULL;
6675 }
6676 int _end_lineno = _token->end_lineno;
6677 UNUSED(_end_lineno); // Only used by EXTRA macro
6678 int _end_col_offset = _token->end_col_offset;
6679 UNUSED(_end_col_offset); // Only used by EXTRA macro
6680 _res = _Py_Starred ( a , Load , EXTRA );
6681 if (_res == NULL && PyErr_Occurred()) {
6682 p->error_indicator = 1;
6683 D(p->level--);
6684 return NULL;
6685 }
6686 goto done;
6687 }
6688 p->mark = _mark;
6689 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6691 }
6692 { // named_expression
6693 if (p->error_indicator) {
6694 D(p->level--);
6695 return NULL;
6696 }
6697 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
6698 expr_ty named_expression_var;
6699 if (
6700 (named_expression_var = named_expression_rule(p)) // named_expression
6701 )
6702 {
6703 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
6704 _res = named_expression_var;
6705 goto done;
6706 }
6707 p->mark = _mark;
6708 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
6710 }
6711 _res = NULL;
6712 done:
6713 D(p->level--);
6714 return _res;
6715}
6716
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006717// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006718static expr_ty
6719named_expression_rule(Parser *p)
6720{
6721 D(p->level++);
6722 if (p->error_indicator) {
6723 D(p->level--);
6724 return NULL;
6725 }
6726 expr_ty _res = NULL;
6727 int _mark = p->mark;
6728 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6729 p->error_indicator = 1;
6730 D(p->level--);
6731 return NULL;
6732 }
6733 int _start_lineno = p->tokens[_mark]->lineno;
6734 UNUSED(_start_lineno); // Only used by EXTRA macro
6735 int _start_col_offset = p->tokens[_mark]->col_offset;
6736 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006737 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006738 if (p->error_indicator) {
6739 D(p->level--);
6740 return NULL;
6741 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006742 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6743 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006744 Token * _literal;
6745 expr_ty a;
6746 expr_ty b;
6747 if (
6748 (a = _PyPegen_name_token(p)) // NAME
6749 &&
6750 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
6751 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006752 (_cut_var = 1)
6753 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006754 (b = expression_rule(p)) // expression
6755 )
6756 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006757 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006758 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6759 if (_token == NULL) {
6760 D(p->level--);
6761 return NULL;
6762 }
6763 int _end_lineno = _token->end_lineno;
6764 UNUSED(_end_lineno); // Only used by EXTRA macro
6765 int _end_col_offset = _token->end_col_offset;
6766 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006767 _res = _Py_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006768 if (_res == NULL && PyErr_Occurred()) {
6769 p->error_indicator = 1;
6770 D(p->level--);
6771 return NULL;
6772 }
6773 goto done;
6774 }
6775 p->mark = _mark;
6776 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6778 if (_cut_var) {
6779 D(p->level--);
6780 return NULL;
6781 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006782 }
6783 { // expression !':='
6784 if (p->error_indicator) {
6785 D(p->level--);
6786 return NULL;
6787 }
6788 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6789 expr_ty expression_var;
6790 if (
6791 (expression_var = expression_rule(p)) // expression
6792 &&
6793 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
6794 )
6795 {
6796 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6797 _res = expression_var;
6798 goto done;
6799 }
6800 p->mark = _mark;
6801 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
6803 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006804 if (p->call_invalid_rules) { // invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006805 if (p->error_indicator) {
6806 D(p->level--);
6807 return NULL;
6808 }
6809 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6810 void *invalid_named_expression_var;
6811 if (
6812 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
6813 )
6814 {
6815 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6816 _res = invalid_named_expression_var;
6817 goto done;
6818 }
6819 p->mark = _mark;
6820 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
6822 }
6823 _res = NULL;
6824 done:
6825 D(p->level--);
6826 return _res;
6827}
6828
6829// annotated_rhs: yield_expr | star_expressions
6830static expr_ty
6831annotated_rhs_rule(Parser *p)
6832{
6833 D(p->level++);
6834 if (p->error_indicator) {
6835 D(p->level--);
6836 return NULL;
6837 }
6838 expr_ty _res = NULL;
6839 int _mark = p->mark;
6840 { // yield_expr
6841 if (p->error_indicator) {
6842 D(p->level--);
6843 return NULL;
6844 }
6845 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6846 expr_ty yield_expr_var;
6847 if (
6848 (yield_expr_var = yield_expr_rule(p)) // yield_expr
6849 )
6850 {
6851 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6852 _res = yield_expr_var;
6853 goto done;
6854 }
6855 p->mark = _mark;
6856 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
6858 }
6859 { // star_expressions
6860 if (p->error_indicator) {
6861 D(p->level--);
6862 return NULL;
6863 }
6864 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6865 expr_ty star_expressions_var;
6866 if (
6867 (star_expressions_var = star_expressions_rule(p)) // star_expressions
6868 )
6869 {
6870 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6871 _res = star_expressions_var;
6872 goto done;
6873 }
6874 p->mark = _mark;
6875 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
6877 }
6878 _res = NULL;
6879 done:
6880 D(p->level--);
6881 return _res;
6882}
6883
6884// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6885static expr_ty
6886expressions_rule(Parser *p)
6887{
6888 D(p->level++);
6889 if (p->error_indicator) {
6890 D(p->level--);
6891 return NULL;
6892 }
6893 expr_ty _res = NULL;
6894 int _mark = p->mark;
6895 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6896 p->error_indicator = 1;
6897 D(p->level--);
6898 return NULL;
6899 }
6900 int _start_lineno = p->tokens[_mark]->lineno;
6901 UNUSED(_start_lineno); // Only used by EXTRA macro
6902 int _start_col_offset = p->tokens[_mark]->col_offset;
6903 UNUSED(_start_col_offset); // Only used by EXTRA macro
6904 { // expression ((',' expression))+ ','?
6905 if (p->error_indicator) {
6906 D(p->level--);
6907 return NULL;
6908 }
6909 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6910 void *_opt_var;
6911 UNUSED(_opt_var); // Silence compiler warnings
6912 expr_ty a;
6913 asdl_seq * b;
6914 if (
6915 (a = expression_rule(p)) // expression
6916 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006917 (b = _loop1_73_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006918 &&
6919 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6920 )
6921 {
6922 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6924 if (_token == NULL) {
6925 D(p->level--);
6926 return NULL;
6927 }
6928 int _end_lineno = _token->end_lineno;
6929 UNUSED(_end_lineno); // Only used by EXTRA macro
6930 int _end_col_offset = _token->end_col_offset;
6931 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006932 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006933 if (_res == NULL && PyErr_Occurred()) {
6934 p->error_indicator = 1;
6935 D(p->level--);
6936 return NULL;
6937 }
6938 goto done;
6939 }
6940 p->mark = _mark;
6941 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
6943 }
6944 { // expression ','
6945 if (p->error_indicator) {
6946 D(p->level--);
6947 return NULL;
6948 }
6949 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
6950 Token * _literal;
6951 expr_ty a;
6952 if (
6953 (a = expression_rule(p)) // expression
6954 &&
6955 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6956 )
6957 {
6958 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
6959 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6960 if (_token == NULL) {
6961 D(p->level--);
6962 return NULL;
6963 }
6964 int _end_lineno = _token->end_lineno;
6965 UNUSED(_end_lineno); // Only used by EXTRA macro
6966 int _end_col_offset = _token->end_col_offset;
6967 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006968 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006969 if (_res == NULL && PyErr_Occurred()) {
6970 p->error_indicator = 1;
6971 D(p->level--);
6972 return NULL;
6973 }
6974 goto done;
6975 }
6976 p->mark = _mark;
6977 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
6979 }
6980 { // expression
6981 if (p->error_indicator) {
6982 D(p->level--);
6983 return NULL;
6984 }
6985 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6986 expr_ty expression_var;
6987 if (
6988 (expression_var = expression_rule(p)) // expression
6989 )
6990 {
6991 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6992 _res = expression_var;
6993 goto done;
6994 }
6995 p->mark = _mark;
6996 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6998 }
6999 _res = NULL;
7000 done:
7001 D(p->level--);
7002 return _res;
7003}
7004
7005// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
7006static expr_ty
7007expression_rule(Parser *p)
7008{
7009 D(p->level++);
7010 if (p->error_indicator) {
7011 D(p->level--);
7012 return NULL;
7013 }
7014 expr_ty _res = NULL;
7015 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
7016 D(p->level--);
7017 return _res;
7018 }
7019 int _mark = p->mark;
7020 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7021 p->error_indicator = 1;
7022 D(p->level--);
7023 return NULL;
7024 }
7025 int _start_lineno = p->tokens[_mark]->lineno;
7026 UNUSED(_start_lineno); // Only used by EXTRA macro
7027 int _start_col_offset = p->tokens[_mark]->col_offset;
7028 UNUSED(_start_col_offset); // Only used by EXTRA macro
7029 { // disjunction 'if' disjunction 'else' expression
7030 if (p->error_indicator) {
7031 D(p->level--);
7032 return NULL;
7033 }
7034 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7035 Token * _keyword;
7036 Token * _keyword_1;
7037 expr_ty a;
7038 expr_ty b;
7039 expr_ty c;
7040 if (
7041 (a = disjunction_rule(p)) // disjunction
7042 &&
7043 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
7044 &&
7045 (b = disjunction_rule(p)) // disjunction
7046 &&
7047 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
7048 &&
7049 (c = expression_rule(p)) // expression
7050 )
7051 {
7052 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7053 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7054 if (_token == NULL) {
7055 D(p->level--);
7056 return NULL;
7057 }
7058 int _end_lineno = _token->end_lineno;
7059 UNUSED(_end_lineno); // Only used by EXTRA macro
7060 int _end_col_offset = _token->end_col_offset;
7061 UNUSED(_end_col_offset); // Only used by EXTRA macro
7062 _res = _Py_IfExp ( b , a , c , EXTRA );
7063 if (_res == NULL && PyErr_Occurred()) {
7064 p->error_indicator = 1;
7065 D(p->level--);
7066 return NULL;
7067 }
7068 goto done;
7069 }
7070 p->mark = _mark;
7071 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7073 }
7074 { // disjunction
7075 if (p->error_indicator) {
7076 D(p->level--);
7077 return NULL;
7078 }
7079 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
7080 expr_ty disjunction_var;
7081 if (
7082 (disjunction_var = disjunction_rule(p)) // disjunction
7083 )
7084 {
7085 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
7086 _res = disjunction_var;
7087 goto done;
7088 }
7089 p->mark = _mark;
7090 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
7092 }
7093 { // lambdef
7094 if (p->error_indicator) {
7095 D(p->level--);
7096 return NULL;
7097 }
7098 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
7099 expr_ty lambdef_var;
7100 if (
7101 (lambdef_var = lambdef_rule(p)) // lambdef
7102 )
7103 {
7104 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
7105 _res = lambdef_var;
7106 goto done;
7107 }
7108 p->mark = _mark;
7109 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
7111 }
7112 _res = NULL;
7113 done:
7114 _PyPegen_insert_memo(p, _mark, expression_type, _res);
7115 D(p->level--);
7116 return _res;
7117}
7118
7119// lambdef: 'lambda' lambda_params? ':' expression
7120static expr_ty
7121lambdef_rule(Parser *p)
7122{
7123 D(p->level++);
7124 if (p->error_indicator) {
7125 D(p->level--);
7126 return NULL;
7127 }
7128 expr_ty _res = NULL;
7129 int _mark = p->mark;
7130 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7131 p->error_indicator = 1;
7132 D(p->level--);
7133 return NULL;
7134 }
7135 int _start_lineno = p->tokens[_mark]->lineno;
7136 UNUSED(_start_lineno); // Only used by EXTRA macro
7137 int _start_col_offset = p->tokens[_mark]->col_offset;
7138 UNUSED(_start_col_offset); // Only used by EXTRA macro
7139 { // 'lambda' lambda_params? ':' expression
7140 if (p->error_indicator) {
7141 D(p->level--);
7142 return NULL;
7143 }
7144 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7145 Token * _keyword;
7146 Token * _literal;
7147 void *a;
7148 expr_ty b;
7149 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03007150 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007151 &&
7152 (a = lambda_params_rule(p), 1) // lambda_params?
7153 &&
7154 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7155 &&
7156 (b = expression_rule(p)) // expression
7157 )
7158 {
7159 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7161 if (_token == NULL) {
7162 D(p->level--);
7163 return NULL;
7164 }
7165 int _end_lineno = _token->end_lineno;
7166 UNUSED(_end_lineno); // Only used by EXTRA macro
7167 int _end_col_offset = _token->end_col_offset;
7168 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03007169 _res = _Py_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007170 if (_res == NULL && PyErr_Occurred()) {
7171 p->error_indicator = 1;
7172 D(p->level--);
7173 return NULL;
7174 }
7175 goto done;
7176 }
7177 p->mark = _mark;
7178 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
7179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7180 }
7181 _res = NULL;
7182 done:
7183 D(p->level--);
7184 return _res;
7185}
7186
7187// lambda_params: invalid_lambda_parameters | lambda_parameters
7188static arguments_ty
7189lambda_params_rule(Parser *p)
7190{
7191 D(p->level++);
7192 if (p->error_indicator) {
7193 D(p->level--);
7194 return NULL;
7195 }
7196 arguments_ty _res = NULL;
7197 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007198 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007199 if (p->error_indicator) {
7200 D(p->level--);
7201 return NULL;
7202 }
7203 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7204 void *invalid_lambda_parameters_var;
7205 if (
7206 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7207 )
7208 {
7209 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7210 _res = invalid_lambda_parameters_var;
7211 goto done;
7212 }
7213 p->mark = _mark;
7214 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7216 }
7217 { // lambda_parameters
7218 if (p->error_indicator) {
7219 D(p->level--);
7220 return NULL;
7221 }
7222 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7223 arguments_ty lambda_parameters_var;
7224 if (
7225 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7226 )
7227 {
7228 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7229 _res = lambda_parameters_var;
7230 goto done;
7231 }
7232 p->mark = _mark;
7233 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
7235 }
7236 _res = NULL;
7237 done:
7238 D(p->level--);
7239 return _res;
7240}
7241
7242// lambda_parameters:
7243// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7244// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7245// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7246// | lambda_param_with_default+ lambda_star_etc?
7247// | lambda_star_etc
7248static arguments_ty
7249lambda_parameters_rule(Parser *p)
7250{
7251 D(p->level++);
7252 if (p->error_indicator) {
7253 D(p->level--);
7254 return NULL;
7255 }
7256 arguments_ty _res = NULL;
7257 int _mark = p->mark;
7258 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7259 if (p->error_indicator) {
7260 D(p->level--);
7261 return NULL;
7262 }
7263 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01007264 asdl_arg_seq* a;
7265 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007266 asdl_seq * c;
7267 void *d;
7268 if (
7269 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
7270 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007271 (b = (asdl_arg_seq*)_loop0_74_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007272 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007273 (c = _loop0_75_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007274 &&
7275 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7276 )
7277 {
7278 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
7279 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7280 if (_res == NULL && PyErr_Occurred()) {
7281 p->error_indicator = 1;
7282 D(p->level--);
7283 return NULL;
7284 }
7285 goto done;
7286 }
7287 p->mark = _mark;
7288 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
7290 }
7291 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7292 if (p->error_indicator) {
7293 D(p->level--);
7294 return NULL;
7295 }
7296 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
7297 SlashWithDefault* a;
7298 asdl_seq * b;
7299 void *c;
7300 if (
7301 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
7302 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007303 (b = _loop0_76_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007304 &&
7305 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7306 )
7307 {
7308 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
7309 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7310 if (_res == NULL && PyErr_Occurred()) {
7311 p->error_indicator = 1;
7312 D(p->level--);
7313 return NULL;
7314 }
7315 goto done;
7316 }
7317 p->mark = _mark;
7318 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
7320 }
7321 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7322 if (p->error_indicator) {
7323 D(p->level--);
7324 return NULL;
7325 }
7326 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01007327 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007328 asdl_seq * b;
7329 void *c;
7330 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007331 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007332 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007333 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007334 &&
7335 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7336 )
7337 {
7338 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
7339 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7340 if (_res == NULL && PyErr_Occurred()) {
7341 p->error_indicator = 1;
7342 D(p->level--);
7343 return NULL;
7344 }
7345 goto done;
7346 }
7347 p->mark = _mark;
7348 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
7350 }
7351 { // lambda_param_with_default+ lambda_star_etc?
7352 if (p->error_indicator) {
7353 D(p->level--);
7354 return NULL;
7355 }
7356 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7357 asdl_seq * a;
7358 void *b;
7359 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007360 (a = _loop1_79_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007361 &&
7362 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7363 )
7364 {
7365 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7366 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7367 if (_res == NULL && PyErr_Occurred()) {
7368 p->error_indicator = 1;
7369 D(p->level--);
7370 return NULL;
7371 }
7372 goto done;
7373 }
7374 p->mark = _mark;
7375 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7377 }
7378 { // lambda_star_etc
7379 if (p->error_indicator) {
7380 D(p->level--);
7381 return NULL;
7382 }
7383 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7384 StarEtc* a;
7385 if (
7386 (a = lambda_star_etc_rule(p)) // lambda_star_etc
7387 )
7388 {
7389 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7390 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7391 if (_res == NULL && PyErr_Occurred()) {
7392 p->error_indicator = 1;
7393 D(p->level--);
7394 return NULL;
7395 }
7396 goto done;
7397 }
7398 p->mark = _mark;
7399 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
7401 }
7402 _res = NULL;
7403 done:
7404 D(p->level--);
7405 return _res;
7406}
7407
7408// lambda_slash_no_default:
7409// | lambda_param_no_default+ '/' ','
7410// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007411static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007412lambda_slash_no_default_rule(Parser *p)
7413{
7414 D(p->level++);
7415 if (p->error_indicator) {
7416 D(p->level--);
7417 return NULL;
7418 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007419 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007420 int _mark = p->mark;
7421 { // lambda_param_no_default+ '/' ','
7422 if (p->error_indicator) {
7423 D(p->level--);
7424 return NULL;
7425 }
7426 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7427 Token * _literal;
7428 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007429 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007430 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007431 (a = (asdl_arg_seq*)_loop1_80_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007432 &&
7433 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7434 &&
7435 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7436 )
7437 {
7438 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7439 _res = a;
7440 if (_res == NULL && PyErr_Occurred()) {
7441 p->error_indicator = 1;
7442 D(p->level--);
7443 return NULL;
7444 }
7445 goto done;
7446 }
7447 p->mark = _mark;
7448 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7450 }
7451 { // lambda_param_no_default+ '/' &':'
7452 if (p->error_indicator) {
7453 D(p->level--);
7454 return NULL;
7455 }
7456 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7457 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007458 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007459 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007460 (a = (asdl_arg_seq*)_loop1_81_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007461 &&
7462 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7463 &&
7464 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7465 )
7466 {
7467 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7468 _res = a;
7469 if (_res == NULL && PyErr_Occurred()) {
7470 p->error_indicator = 1;
7471 D(p->level--);
7472 return NULL;
7473 }
7474 goto done;
7475 }
7476 p->mark = _mark;
7477 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7479 }
7480 _res = NULL;
7481 done:
7482 D(p->level--);
7483 return _res;
7484}
7485
7486// lambda_slash_with_default:
7487// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7488// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
7489static SlashWithDefault*
7490lambda_slash_with_default_rule(Parser *p)
7491{
7492 D(p->level++);
7493 if (p->error_indicator) {
7494 D(p->level--);
7495 return NULL;
7496 }
7497 SlashWithDefault* _res = NULL;
7498 int _mark = p->mark;
7499 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
7500 if (p->error_indicator) {
7501 D(p->level--);
7502 return NULL;
7503 }
7504 D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
7505 Token * _literal;
7506 Token * _literal_1;
7507 asdl_seq * a;
7508 asdl_seq * b;
7509 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007510 (a = _loop0_82_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007511 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007512 (b = _loop1_83_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007513 &&
7514 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7515 &&
7516 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7517 )
7518 {
7519 D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01007520 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007521 if (_res == NULL && PyErr_Occurred()) {
7522 p->error_indicator = 1;
7523 D(p->level--);
7524 return NULL;
7525 }
7526 goto done;
7527 }
7528 p->mark = _mark;
7529 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
7531 }
7532 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
7533 if (p->error_indicator) {
7534 D(p->level--);
7535 return NULL;
7536 }
7537 D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
7538 Token * _literal;
7539 asdl_seq * a;
7540 asdl_seq * b;
7541 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007542 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007543 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007544 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007545 &&
7546 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7547 &&
7548 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7549 )
7550 {
7551 D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01007552 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007553 if (_res == NULL && PyErr_Occurred()) {
7554 p->error_indicator = 1;
7555 D(p->level--);
7556 return NULL;
7557 }
7558 goto done;
7559 }
7560 p->mark = _mark;
7561 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
7563 }
7564 _res = NULL;
7565 done:
7566 D(p->level--);
7567 return _res;
7568}
7569
7570// lambda_star_etc:
7571// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7572// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7573// | lambda_kwds
7574// | invalid_lambda_star_etc
7575static StarEtc*
7576lambda_star_etc_rule(Parser *p)
7577{
7578 D(p->level++);
7579 if (p->error_indicator) {
7580 D(p->level--);
7581 return NULL;
7582 }
7583 StarEtc* _res = NULL;
7584 int _mark = p->mark;
7585 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7586 if (p->error_indicator) {
7587 D(p->level--);
7588 return NULL;
7589 }
7590 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
7591 Token * _literal;
7592 arg_ty a;
7593 asdl_seq * b;
7594 void *c;
7595 if (
7596 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7597 &&
7598 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7599 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007600 (b = _loop0_86_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007601 &&
7602 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7603 )
7604 {
7605 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
7606 _res = _PyPegen_star_etc ( p , a , b , c );
7607 if (_res == NULL && PyErr_Occurred()) {
7608 p->error_indicator = 1;
7609 D(p->level--);
7610 return NULL;
7611 }
7612 goto done;
7613 }
7614 p->mark = _mark;
7615 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
7617 }
7618 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
7619 if (p->error_indicator) {
7620 D(p->level--);
7621 return NULL;
7622 }
7623 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7624 Token * _literal;
7625 Token * _literal_1;
7626 asdl_seq * b;
7627 void *c;
7628 if (
7629 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7630 &&
7631 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7632 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007633 (b = _loop1_87_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007634 &&
7635 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7636 )
7637 {
7638 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7639 _res = _PyPegen_star_etc ( p , NULL , b , c );
7640 if (_res == NULL && PyErr_Occurred()) {
7641 p->error_indicator = 1;
7642 D(p->level--);
7643 return NULL;
7644 }
7645 goto done;
7646 }
7647 p->mark = _mark;
7648 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7650 }
7651 { // lambda_kwds
7652 if (p->error_indicator) {
7653 D(p->level--);
7654 return NULL;
7655 }
7656 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7657 arg_ty a;
7658 if (
7659 (a = lambda_kwds_rule(p)) // lambda_kwds
7660 )
7661 {
7662 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7663 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7664 if (_res == NULL && PyErr_Occurred()) {
7665 p->error_indicator = 1;
7666 D(p->level--);
7667 return NULL;
7668 }
7669 goto done;
7670 }
7671 p->mark = _mark;
7672 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
7674 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007675 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007676 if (p->error_indicator) {
7677 D(p->level--);
7678 return NULL;
7679 }
7680 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7681 void *invalid_lambda_star_etc_var;
7682 if (
7683 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
7684 )
7685 {
7686 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7687 _res = invalid_lambda_star_etc_var;
7688 goto done;
7689 }
7690 p->mark = _mark;
7691 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
7693 }
7694 _res = NULL;
7695 done:
7696 D(p->level--);
7697 return _res;
7698}
7699
7700// lambda_kwds: '**' lambda_param_no_default
7701static arg_ty
7702lambda_kwds_rule(Parser *p)
7703{
7704 D(p->level++);
7705 if (p->error_indicator) {
7706 D(p->level--);
7707 return NULL;
7708 }
7709 arg_ty _res = NULL;
7710 int _mark = p->mark;
7711 { // '**' lambda_param_no_default
7712 if (p->error_indicator) {
7713 D(p->level--);
7714 return NULL;
7715 }
7716 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7717 Token * _literal;
7718 arg_ty a;
7719 if (
7720 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7721 &&
7722 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7723 )
7724 {
7725 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7726 _res = a;
7727 if (_res == NULL && PyErr_Occurred()) {
7728 p->error_indicator = 1;
7729 D(p->level--);
7730 return NULL;
7731 }
7732 goto done;
7733 }
7734 p->mark = _mark;
7735 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
7737 }
7738 _res = NULL;
7739 done:
7740 D(p->level--);
7741 return _res;
7742}
7743
7744// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7745static arg_ty
7746lambda_param_no_default_rule(Parser *p)
7747{
7748 D(p->level++);
7749 if (p->error_indicator) {
7750 D(p->level--);
7751 return NULL;
7752 }
7753 arg_ty _res = NULL;
7754 int _mark = p->mark;
7755 { // lambda_param ','
7756 if (p->error_indicator) {
7757 D(p->level--);
7758 return NULL;
7759 }
7760 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7761 Token * _literal;
7762 arg_ty a;
7763 if (
7764 (a = lambda_param_rule(p)) // lambda_param
7765 &&
7766 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7767 )
7768 {
7769 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7770 _res = a;
7771 if (_res == NULL && PyErr_Occurred()) {
7772 p->error_indicator = 1;
7773 D(p->level--);
7774 return NULL;
7775 }
7776 goto done;
7777 }
7778 p->mark = _mark;
7779 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
7781 }
7782 { // lambda_param &':'
7783 if (p->error_indicator) {
7784 D(p->level--);
7785 return NULL;
7786 }
7787 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7788 arg_ty a;
7789 if (
7790 (a = lambda_param_rule(p)) // lambda_param
7791 &&
7792 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7793 )
7794 {
7795 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7796 _res = a;
7797 if (_res == NULL && PyErr_Occurred()) {
7798 p->error_indicator = 1;
7799 D(p->level--);
7800 return NULL;
7801 }
7802 goto done;
7803 }
7804 p->mark = _mark;
7805 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
7807 }
7808 _res = NULL;
7809 done:
7810 D(p->level--);
7811 return _res;
7812}
7813
7814// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7815static NameDefaultPair*
7816lambda_param_with_default_rule(Parser *p)
7817{
7818 D(p->level++);
7819 if (p->error_indicator) {
7820 D(p->level--);
7821 return NULL;
7822 }
7823 NameDefaultPair* _res = NULL;
7824 int _mark = p->mark;
7825 { // lambda_param default ','
7826 if (p->error_indicator) {
7827 D(p->level--);
7828 return NULL;
7829 }
7830 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7831 Token * _literal;
7832 arg_ty a;
7833 expr_ty c;
7834 if (
7835 (a = lambda_param_rule(p)) // lambda_param
7836 &&
7837 (c = default_rule(p)) // default
7838 &&
7839 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7840 )
7841 {
7842 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7843 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7844 if (_res == NULL && PyErr_Occurred()) {
7845 p->error_indicator = 1;
7846 D(p->level--);
7847 return NULL;
7848 }
7849 goto done;
7850 }
7851 p->mark = _mark;
7852 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
7854 }
7855 { // lambda_param default &':'
7856 if (p->error_indicator) {
7857 D(p->level--);
7858 return NULL;
7859 }
7860 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7861 arg_ty a;
7862 expr_ty c;
7863 if (
7864 (a = lambda_param_rule(p)) // lambda_param
7865 &&
7866 (c = default_rule(p)) // default
7867 &&
7868 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7869 )
7870 {
7871 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7872 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7873 if (_res == NULL && PyErr_Occurred()) {
7874 p->error_indicator = 1;
7875 D(p->level--);
7876 return NULL;
7877 }
7878 goto done;
7879 }
7880 p->mark = _mark;
7881 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
7883 }
7884 _res = NULL;
7885 done:
7886 D(p->level--);
7887 return _res;
7888}
7889
7890// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7891static NameDefaultPair*
7892lambda_param_maybe_default_rule(Parser *p)
7893{
7894 D(p->level++);
7895 if (p->error_indicator) {
7896 D(p->level--);
7897 return NULL;
7898 }
7899 NameDefaultPair* _res = NULL;
7900 int _mark = p->mark;
7901 { // lambda_param default? ','
7902 if (p->error_indicator) {
7903 D(p->level--);
7904 return NULL;
7905 }
7906 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7907 Token * _literal;
7908 arg_ty a;
7909 void *c;
7910 if (
7911 (a = lambda_param_rule(p)) // lambda_param
7912 &&
7913 (c = default_rule(p), 1) // default?
7914 &&
7915 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7916 )
7917 {
7918 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7919 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7920 if (_res == NULL && PyErr_Occurred()) {
7921 p->error_indicator = 1;
7922 D(p->level--);
7923 return NULL;
7924 }
7925 goto done;
7926 }
7927 p->mark = _mark;
7928 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
7930 }
7931 { // lambda_param default? &':'
7932 if (p->error_indicator) {
7933 D(p->level--);
7934 return NULL;
7935 }
7936 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7937 arg_ty a;
7938 void *c;
7939 if (
7940 (a = lambda_param_rule(p)) // lambda_param
7941 &&
7942 (c = default_rule(p), 1) // default?
7943 &&
7944 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7945 )
7946 {
7947 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7948 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7949 if (_res == NULL && PyErr_Occurred()) {
7950 p->error_indicator = 1;
7951 D(p->level--);
7952 return NULL;
7953 }
7954 goto done;
7955 }
7956 p->mark = _mark;
7957 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
7959 }
7960 _res = NULL;
7961 done:
7962 D(p->level--);
7963 return _res;
7964}
7965
7966// lambda_param: NAME
7967static arg_ty
7968lambda_param_rule(Parser *p)
7969{
7970 D(p->level++);
7971 if (p->error_indicator) {
7972 D(p->level--);
7973 return NULL;
7974 }
7975 arg_ty _res = NULL;
7976 int _mark = p->mark;
7977 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7978 p->error_indicator = 1;
7979 D(p->level--);
7980 return NULL;
7981 }
7982 int _start_lineno = p->tokens[_mark]->lineno;
7983 UNUSED(_start_lineno); // Only used by EXTRA macro
7984 int _start_col_offset = p->tokens[_mark]->col_offset;
7985 UNUSED(_start_col_offset); // Only used by EXTRA macro
7986 { // NAME
7987 if (p->error_indicator) {
7988 D(p->level--);
7989 return NULL;
7990 }
7991 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7992 expr_ty a;
7993 if (
7994 (a = _PyPegen_name_token(p)) // NAME
7995 )
7996 {
7997 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7998 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7999 if (_token == NULL) {
8000 D(p->level--);
8001 return NULL;
8002 }
8003 int _end_lineno = _token->end_lineno;
8004 UNUSED(_end_lineno); // Only used by EXTRA macro
8005 int _end_col_offset = _token->end_col_offset;
8006 UNUSED(_end_col_offset); // Only used by EXTRA macro
8007 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
8008 if (_res == NULL && PyErr_Occurred()) {
8009 p->error_indicator = 1;
8010 D(p->level--);
8011 return NULL;
8012 }
8013 goto done;
8014 }
8015 p->mark = _mark;
8016 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
8017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
8018 }
8019 _res = NULL;
8020 done:
8021 D(p->level--);
8022 return _res;
8023}
8024
8025// disjunction: conjunction (('or' conjunction))+ | conjunction
8026static expr_ty
8027disjunction_rule(Parser *p)
8028{
8029 D(p->level++);
8030 if (p->error_indicator) {
8031 D(p->level--);
8032 return NULL;
8033 }
8034 expr_ty _res = NULL;
8035 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
8036 D(p->level--);
8037 return _res;
8038 }
8039 int _mark = p->mark;
8040 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8041 p->error_indicator = 1;
8042 D(p->level--);
8043 return NULL;
8044 }
8045 int _start_lineno = p->tokens[_mark]->lineno;
8046 UNUSED(_start_lineno); // Only used by EXTRA macro
8047 int _start_col_offset = p->tokens[_mark]->col_offset;
8048 UNUSED(_start_col_offset); // Only used by EXTRA macro
8049 { // conjunction (('or' conjunction))+
8050 if (p->error_indicator) {
8051 D(p->level--);
8052 return NULL;
8053 }
8054 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8055 expr_ty a;
8056 asdl_seq * b;
8057 if (
8058 (a = conjunction_rule(p)) // conjunction
8059 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008060 (b = _loop1_88_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008061 )
8062 {
8063 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8064 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8065 if (_token == NULL) {
8066 D(p->level--);
8067 return NULL;
8068 }
8069 int _end_lineno = _token->end_lineno;
8070 UNUSED(_end_lineno); // Only used by EXTRA macro
8071 int _end_col_offset = _token->end_col_offset;
8072 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008073 _res = _Py_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008074 if (_res == NULL && PyErr_Occurred()) {
8075 p->error_indicator = 1;
8076 D(p->level--);
8077 return NULL;
8078 }
8079 goto done;
8080 }
8081 p->mark = _mark;
8082 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
8084 }
8085 { // conjunction
8086 if (p->error_indicator) {
8087 D(p->level--);
8088 return NULL;
8089 }
8090 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
8091 expr_ty conjunction_var;
8092 if (
8093 (conjunction_var = conjunction_rule(p)) // conjunction
8094 )
8095 {
8096 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
8097 _res = conjunction_var;
8098 goto done;
8099 }
8100 p->mark = _mark;
8101 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
8103 }
8104 _res = NULL;
8105 done:
8106 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
8107 D(p->level--);
8108 return _res;
8109}
8110
8111// conjunction: inversion (('and' inversion))+ | inversion
8112static expr_ty
8113conjunction_rule(Parser *p)
8114{
8115 D(p->level++);
8116 if (p->error_indicator) {
8117 D(p->level--);
8118 return NULL;
8119 }
8120 expr_ty _res = NULL;
8121 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8122 D(p->level--);
8123 return _res;
8124 }
8125 int _mark = p->mark;
8126 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8127 p->error_indicator = 1;
8128 D(p->level--);
8129 return NULL;
8130 }
8131 int _start_lineno = p->tokens[_mark]->lineno;
8132 UNUSED(_start_lineno); // Only used by EXTRA macro
8133 int _start_col_offset = p->tokens[_mark]->col_offset;
8134 UNUSED(_start_col_offset); // Only used by EXTRA macro
8135 { // inversion (('and' inversion))+
8136 if (p->error_indicator) {
8137 D(p->level--);
8138 return NULL;
8139 }
8140 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8141 expr_ty a;
8142 asdl_seq * b;
8143 if (
8144 (a = inversion_rule(p)) // inversion
8145 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008146 (b = _loop1_89_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008147 )
8148 {
8149 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8151 if (_token == NULL) {
8152 D(p->level--);
8153 return NULL;
8154 }
8155 int _end_lineno = _token->end_lineno;
8156 UNUSED(_end_lineno); // Only used by EXTRA macro
8157 int _end_col_offset = _token->end_col_offset;
8158 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008159 _res = _Py_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008160 if (_res == NULL && PyErr_Occurred()) {
8161 p->error_indicator = 1;
8162 D(p->level--);
8163 return NULL;
8164 }
8165 goto done;
8166 }
8167 p->mark = _mark;
8168 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
8170 }
8171 { // inversion
8172 if (p->error_indicator) {
8173 D(p->level--);
8174 return NULL;
8175 }
8176 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
8177 expr_ty inversion_var;
8178 if (
8179 (inversion_var = inversion_rule(p)) // inversion
8180 )
8181 {
8182 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
8183 _res = inversion_var;
8184 goto done;
8185 }
8186 p->mark = _mark;
8187 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
8189 }
8190 _res = NULL;
8191 done:
8192 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
8193 D(p->level--);
8194 return _res;
8195}
8196
8197// inversion: 'not' inversion | comparison
8198static expr_ty
8199inversion_rule(Parser *p)
8200{
8201 D(p->level++);
8202 if (p->error_indicator) {
8203 D(p->level--);
8204 return NULL;
8205 }
8206 expr_ty _res = NULL;
8207 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8208 D(p->level--);
8209 return _res;
8210 }
8211 int _mark = p->mark;
8212 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8213 p->error_indicator = 1;
8214 D(p->level--);
8215 return NULL;
8216 }
8217 int _start_lineno = p->tokens[_mark]->lineno;
8218 UNUSED(_start_lineno); // Only used by EXTRA macro
8219 int _start_col_offset = p->tokens[_mark]->col_offset;
8220 UNUSED(_start_col_offset); // Only used by EXTRA macro
8221 { // 'not' inversion
8222 if (p->error_indicator) {
8223 D(p->level--);
8224 return NULL;
8225 }
8226 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8227 Token * _keyword;
8228 expr_ty a;
8229 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008230 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008231 &&
8232 (a = inversion_rule(p)) // inversion
8233 )
8234 {
8235 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8236 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8237 if (_token == NULL) {
8238 D(p->level--);
8239 return NULL;
8240 }
8241 int _end_lineno = _token->end_lineno;
8242 UNUSED(_end_lineno); // Only used by EXTRA macro
8243 int _end_col_offset = _token->end_col_offset;
8244 UNUSED(_end_col_offset); // Only used by EXTRA macro
8245 _res = _Py_UnaryOp ( Not , a , EXTRA );
8246 if (_res == NULL && PyErr_Occurred()) {
8247 p->error_indicator = 1;
8248 D(p->level--);
8249 return NULL;
8250 }
8251 goto done;
8252 }
8253 p->mark = _mark;
8254 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
8256 }
8257 { // comparison
8258 if (p->error_indicator) {
8259 D(p->level--);
8260 return NULL;
8261 }
8262 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
8263 expr_ty comparison_var;
8264 if (
8265 (comparison_var = comparison_rule(p)) // comparison
8266 )
8267 {
8268 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
8269 _res = comparison_var;
8270 goto done;
8271 }
8272 p->mark = _mark;
8273 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
8275 }
8276 _res = NULL;
8277 done:
8278 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
8279 D(p->level--);
8280 return _res;
8281}
8282
8283// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8284static expr_ty
8285comparison_rule(Parser *p)
8286{
8287 D(p->level++);
8288 if (p->error_indicator) {
8289 D(p->level--);
8290 return NULL;
8291 }
8292 expr_ty _res = NULL;
8293 int _mark = p->mark;
8294 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8295 p->error_indicator = 1;
8296 D(p->level--);
8297 return NULL;
8298 }
8299 int _start_lineno = p->tokens[_mark]->lineno;
8300 UNUSED(_start_lineno); // Only used by EXTRA macro
8301 int _start_col_offset = p->tokens[_mark]->col_offset;
8302 UNUSED(_start_col_offset); // Only used by EXTRA macro
8303 { // bitwise_or compare_op_bitwise_or_pair+
8304 if (p->error_indicator) {
8305 D(p->level--);
8306 return NULL;
8307 }
8308 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8309 expr_ty a;
8310 asdl_seq * b;
8311 if (
8312 (a = bitwise_or_rule(p)) // bitwise_or
8313 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008314 (b = _loop1_90_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008315 )
8316 {
8317 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8318 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8319 if (_token == NULL) {
8320 D(p->level--);
8321 return NULL;
8322 }
8323 int _end_lineno = _token->end_lineno;
8324 UNUSED(_end_lineno); // Only used by EXTRA macro
8325 int _end_col_offset = _token->end_col_offset;
8326 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008327 _res = _Py_Compare ( a , CHECK ( asdl_int_seq * , _PyPegen_get_cmpops ( p , b ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_exprs ( p , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008328 if (_res == NULL && PyErr_Occurred()) {
8329 p->error_indicator = 1;
8330 D(p->level--);
8331 return NULL;
8332 }
8333 goto done;
8334 }
8335 p->mark = _mark;
8336 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8338 }
8339 { // bitwise_or
8340 if (p->error_indicator) {
8341 D(p->level--);
8342 return NULL;
8343 }
8344 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8345 expr_ty bitwise_or_var;
8346 if (
8347 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
8348 )
8349 {
8350 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8351 _res = bitwise_or_var;
8352 goto done;
8353 }
8354 p->mark = _mark;
8355 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
8357 }
8358 _res = NULL;
8359 done:
8360 D(p->level--);
8361 return _res;
8362}
8363
8364// compare_op_bitwise_or_pair:
8365// | eq_bitwise_or
8366// | noteq_bitwise_or
8367// | lte_bitwise_or
8368// | lt_bitwise_or
8369// | gte_bitwise_or
8370// | gt_bitwise_or
8371// | notin_bitwise_or
8372// | in_bitwise_or
8373// | isnot_bitwise_or
8374// | is_bitwise_or
8375static CmpopExprPair*
8376compare_op_bitwise_or_pair_rule(Parser *p)
8377{
8378 D(p->level++);
8379 if (p->error_indicator) {
8380 D(p->level--);
8381 return NULL;
8382 }
8383 CmpopExprPair* _res = NULL;
8384 int _mark = p->mark;
8385 { // eq_bitwise_or
8386 if (p->error_indicator) {
8387 D(p->level--);
8388 return NULL;
8389 }
8390 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8391 CmpopExprPair* eq_bitwise_or_var;
8392 if (
8393 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
8394 )
8395 {
8396 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8397 _res = eq_bitwise_or_var;
8398 goto done;
8399 }
8400 p->mark = _mark;
8401 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
8403 }
8404 { // noteq_bitwise_or
8405 if (p->error_indicator) {
8406 D(p->level--);
8407 return NULL;
8408 }
8409 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8410 CmpopExprPair* noteq_bitwise_or_var;
8411 if (
8412 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
8413 )
8414 {
8415 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8416 _res = noteq_bitwise_or_var;
8417 goto done;
8418 }
8419 p->mark = _mark;
8420 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
8422 }
8423 { // lte_bitwise_or
8424 if (p->error_indicator) {
8425 D(p->level--);
8426 return NULL;
8427 }
8428 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8429 CmpopExprPair* lte_bitwise_or_var;
8430 if (
8431 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
8432 )
8433 {
8434 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8435 _res = lte_bitwise_or_var;
8436 goto done;
8437 }
8438 p->mark = _mark;
8439 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
8441 }
8442 { // lt_bitwise_or
8443 if (p->error_indicator) {
8444 D(p->level--);
8445 return NULL;
8446 }
8447 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8448 CmpopExprPair* lt_bitwise_or_var;
8449 if (
8450 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
8451 )
8452 {
8453 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8454 _res = lt_bitwise_or_var;
8455 goto done;
8456 }
8457 p->mark = _mark;
8458 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
8460 }
8461 { // gte_bitwise_or
8462 if (p->error_indicator) {
8463 D(p->level--);
8464 return NULL;
8465 }
8466 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8467 CmpopExprPair* gte_bitwise_or_var;
8468 if (
8469 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
8470 )
8471 {
8472 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8473 _res = gte_bitwise_or_var;
8474 goto done;
8475 }
8476 p->mark = _mark;
8477 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
8479 }
8480 { // gt_bitwise_or
8481 if (p->error_indicator) {
8482 D(p->level--);
8483 return NULL;
8484 }
8485 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8486 CmpopExprPair* gt_bitwise_or_var;
8487 if (
8488 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
8489 )
8490 {
8491 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8492 _res = gt_bitwise_or_var;
8493 goto done;
8494 }
8495 p->mark = _mark;
8496 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
8498 }
8499 { // notin_bitwise_or
8500 if (p->error_indicator) {
8501 D(p->level--);
8502 return NULL;
8503 }
8504 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8505 CmpopExprPair* notin_bitwise_or_var;
8506 if (
8507 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
8508 )
8509 {
8510 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8511 _res = notin_bitwise_or_var;
8512 goto done;
8513 }
8514 p->mark = _mark;
8515 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
8517 }
8518 { // in_bitwise_or
8519 if (p->error_indicator) {
8520 D(p->level--);
8521 return NULL;
8522 }
8523 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8524 CmpopExprPair* in_bitwise_or_var;
8525 if (
8526 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
8527 )
8528 {
8529 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8530 _res = in_bitwise_or_var;
8531 goto done;
8532 }
8533 p->mark = _mark;
8534 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
8536 }
8537 { // isnot_bitwise_or
8538 if (p->error_indicator) {
8539 D(p->level--);
8540 return NULL;
8541 }
8542 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8543 CmpopExprPair* isnot_bitwise_or_var;
8544 if (
8545 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
8546 )
8547 {
8548 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8549 _res = isnot_bitwise_or_var;
8550 goto done;
8551 }
8552 p->mark = _mark;
8553 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
8555 }
8556 { // is_bitwise_or
8557 if (p->error_indicator) {
8558 D(p->level--);
8559 return NULL;
8560 }
8561 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8562 CmpopExprPair* is_bitwise_or_var;
8563 if (
8564 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
8565 )
8566 {
8567 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8568 _res = is_bitwise_or_var;
8569 goto done;
8570 }
8571 p->mark = _mark;
8572 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
8574 }
8575 _res = NULL;
8576 done:
8577 D(p->level--);
8578 return _res;
8579}
8580
8581// eq_bitwise_or: '==' bitwise_or
8582static CmpopExprPair*
8583eq_bitwise_or_rule(Parser *p)
8584{
8585 D(p->level++);
8586 if (p->error_indicator) {
8587 D(p->level--);
8588 return NULL;
8589 }
8590 CmpopExprPair* _res = NULL;
8591 int _mark = p->mark;
8592 { // '==' bitwise_or
8593 if (p->error_indicator) {
8594 D(p->level--);
8595 return NULL;
8596 }
8597 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8598 Token * _literal;
8599 expr_ty a;
8600 if (
8601 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
8602 &&
8603 (a = bitwise_or_rule(p)) // bitwise_or
8604 )
8605 {
8606 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8607 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8608 if (_res == NULL && PyErr_Occurred()) {
8609 p->error_indicator = 1;
8610 D(p->level--);
8611 return NULL;
8612 }
8613 goto done;
8614 }
8615 p->mark = _mark;
8616 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
8618 }
8619 _res = NULL;
8620 done:
8621 D(p->level--);
8622 return _res;
8623}
8624
8625// noteq_bitwise_or: ('!=') bitwise_or
8626static CmpopExprPair*
8627noteq_bitwise_or_rule(Parser *p)
8628{
8629 D(p->level++);
8630 if (p->error_indicator) {
8631 D(p->level--);
8632 return NULL;
8633 }
8634 CmpopExprPair* _res = NULL;
8635 int _mark = p->mark;
8636 { // ('!=') bitwise_or
8637 if (p->error_indicator) {
8638 D(p->level--);
8639 return NULL;
8640 }
8641 D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008642 void *_tmp_91_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008643 expr_ty a;
8644 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008645 (_tmp_91_var = _tmp_91_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008646 &&
8647 (a = bitwise_or_rule(p)) // bitwise_or
8648 )
8649 {
8650 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
8651 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8652 if (_res == NULL && PyErr_Occurred()) {
8653 p->error_indicator = 1;
8654 D(p->level--);
8655 return NULL;
8656 }
8657 goto done;
8658 }
8659 p->mark = _mark;
8660 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
8662 }
8663 _res = NULL;
8664 done:
8665 D(p->level--);
8666 return _res;
8667}
8668
8669// lte_bitwise_or: '<=' bitwise_or
8670static CmpopExprPair*
8671lte_bitwise_or_rule(Parser *p)
8672{
8673 D(p->level++);
8674 if (p->error_indicator) {
8675 D(p->level--);
8676 return NULL;
8677 }
8678 CmpopExprPair* _res = NULL;
8679 int _mark = p->mark;
8680 { // '<=' bitwise_or
8681 if (p->error_indicator) {
8682 D(p->level--);
8683 return NULL;
8684 }
8685 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8686 Token * _literal;
8687 expr_ty a;
8688 if (
8689 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
8690 &&
8691 (a = bitwise_or_rule(p)) // bitwise_or
8692 )
8693 {
8694 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8695 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8696 if (_res == NULL && PyErr_Occurred()) {
8697 p->error_indicator = 1;
8698 D(p->level--);
8699 return NULL;
8700 }
8701 goto done;
8702 }
8703 p->mark = _mark;
8704 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
8706 }
8707 _res = NULL;
8708 done:
8709 D(p->level--);
8710 return _res;
8711}
8712
8713// lt_bitwise_or: '<' bitwise_or
8714static CmpopExprPair*
8715lt_bitwise_or_rule(Parser *p)
8716{
8717 D(p->level++);
8718 if (p->error_indicator) {
8719 D(p->level--);
8720 return NULL;
8721 }
8722 CmpopExprPair* _res = NULL;
8723 int _mark = p->mark;
8724 { // '<' bitwise_or
8725 if (p->error_indicator) {
8726 D(p->level--);
8727 return NULL;
8728 }
8729 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8730 Token * _literal;
8731 expr_ty a;
8732 if (
8733 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
8734 &&
8735 (a = bitwise_or_rule(p)) // bitwise_or
8736 )
8737 {
8738 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8739 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8740 if (_res == NULL && PyErr_Occurred()) {
8741 p->error_indicator = 1;
8742 D(p->level--);
8743 return NULL;
8744 }
8745 goto done;
8746 }
8747 p->mark = _mark;
8748 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
8750 }
8751 _res = NULL;
8752 done:
8753 D(p->level--);
8754 return _res;
8755}
8756
8757// gte_bitwise_or: '>=' bitwise_or
8758static CmpopExprPair*
8759gte_bitwise_or_rule(Parser *p)
8760{
8761 D(p->level++);
8762 if (p->error_indicator) {
8763 D(p->level--);
8764 return NULL;
8765 }
8766 CmpopExprPair* _res = NULL;
8767 int _mark = p->mark;
8768 { // '>=' bitwise_or
8769 if (p->error_indicator) {
8770 D(p->level--);
8771 return NULL;
8772 }
8773 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8774 Token * _literal;
8775 expr_ty a;
8776 if (
8777 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
8778 &&
8779 (a = bitwise_or_rule(p)) // bitwise_or
8780 )
8781 {
8782 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8783 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8784 if (_res == NULL && PyErr_Occurred()) {
8785 p->error_indicator = 1;
8786 D(p->level--);
8787 return NULL;
8788 }
8789 goto done;
8790 }
8791 p->mark = _mark;
8792 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
8794 }
8795 _res = NULL;
8796 done:
8797 D(p->level--);
8798 return _res;
8799}
8800
8801// gt_bitwise_or: '>' bitwise_or
8802static CmpopExprPair*
8803gt_bitwise_or_rule(Parser *p)
8804{
8805 D(p->level++);
8806 if (p->error_indicator) {
8807 D(p->level--);
8808 return NULL;
8809 }
8810 CmpopExprPair* _res = NULL;
8811 int _mark = p->mark;
8812 { // '>' bitwise_or
8813 if (p->error_indicator) {
8814 D(p->level--);
8815 return NULL;
8816 }
8817 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8818 Token * _literal;
8819 expr_ty a;
8820 if (
8821 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
8822 &&
8823 (a = bitwise_or_rule(p)) // bitwise_or
8824 )
8825 {
8826 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8827 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8828 if (_res == NULL && PyErr_Occurred()) {
8829 p->error_indicator = 1;
8830 D(p->level--);
8831 return NULL;
8832 }
8833 goto done;
8834 }
8835 p->mark = _mark;
8836 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
8838 }
8839 _res = NULL;
8840 done:
8841 D(p->level--);
8842 return _res;
8843}
8844
8845// notin_bitwise_or: 'not' 'in' bitwise_or
8846static CmpopExprPair*
8847notin_bitwise_or_rule(Parser *p)
8848{
8849 D(p->level++);
8850 if (p->error_indicator) {
8851 D(p->level--);
8852 return NULL;
8853 }
8854 CmpopExprPair* _res = NULL;
8855 int _mark = p->mark;
8856 { // 'not' 'in' bitwise_or
8857 if (p->error_indicator) {
8858 D(p->level--);
8859 return NULL;
8860 }
8861 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8862 Token * _keyword;
8863 Token * _keyword_1;
8864 expr_ty a;
8865 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008866 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008867 &&
8868 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
8869 &&
8870 (a = bitwise_or_rule(p)) // bitwise_or
8871 )
8872 {
8873 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8874 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8875 if (_res == NULL && PyErr_Occurred()) {
8876 p->error_indicator = 1;
8877 D(p->level--);
8878 return NULL;
8879 }
8880 goto done;
8881 }
8882 p->mark = _mark;
8883 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
8885 }
8886 _res = NULL;
8887 done:
8888 D(p->level--);
8889 return _res;
8890}
8891
8892// in_bitwise_or: 'in' bitwise_or
8893static CmpopExprPair*
8894in_bitwise_or_rule(Parser *p)
8895{
8896 D(p->level++);
8897 if (p->error_indicator) {
8898 D(p->level--);
8899 return NULL;
8900 }
8901 CmpopExprPair* _res = NULL;
8902 int _mark = p->mark;
8903 { // 'in' bitwise_or
8904 if (p->error_indicator) {
8905 D(p->level--);
8906 return NULL;
8907 }
8908 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8909 Token * _keyword;
8910 expr_ty a;
8911 if (
8912 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
8913 &&
8914 (a = bitwise_or_rule(p)) // bitwise_or
8915 )
8916 {
8917 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8918 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8919 if (_res == NULL && PyErr_Occurred()) {
8920 p->error_indicator = 1;
8921 D(p->level--);
8922 return NULL;
8923 }
8924 goto done;
8925 }
8926 p->mark = _mark;
8927 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
8929 }
8930 _res = NULL;
8931 done:
8932 D(p->level--);
8933 return _res;
8934}
8935
8936// isnot_bitwise_or: 'is' 'not' bitwise_or
8937static CmpopExprPair*
8938isnot_bitwise_or_rule(Parser *p)
8939{
8940 D(p->level++);
8941 if (p->error_indicator) {
8942 D(p->level--);
8943 return NULL;
8944 }
8945 CmpopExprPair* _res = NULL;
8946 int _mark = p->mark;
8947 { // 'is' 'not' bitwise_or
8948 if (p->error_indicator) {
8949 D(p->level--);
8950 return NULL;
8951 }
8952 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8953 Token * _keyword;
8954 Token * _keyword_1;
8955 expr_ty a;
8956 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008957 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008958 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008959 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008960 &&
8961 (a = bitwise_or_rule(p)) // bitwise_or
8962 )
8963 {
8964 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8965 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8966 if (_res == NULL && PyErr_Occurred()) {
8967 p->error_indicator = 1;
8968 D(p->level--);
8969 return NULL;
8970 }
8971 goto done;
8972 }
8973 p->mark = _mark;
8974 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
8976 }
8977 _res = NULL;
8978 done:
8979 D(p->level--);
8980 return _res;
8981}
8982
8983// is_bitwise_or: 'is' bitwise_or
8984static CmpopExprPair*
8985is_bitwise_or_rule(Parser *p)
8986{
8987 D(p->level++);
8988 if (p->error_indicator) {
8989 D(p->level--);
8990 return NULL;
8991 }
8992 CmpopExprPair* _res = NULL;
8993 int _mark = p->mark;
8994 { // 'is' bitwise_or
8995 if (p->error_indicator) {
8996 D(p->level--);
8997 return NULL;
8998 }
8999 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
9000 Token * _keyword;
9001 expr_ty a;
9002 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009003 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009004 &&
9005 (a = bitwise_or_rule(p)) // bitwise_or
9006 )
9007 {
9008 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
9009 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
9010 if (_res == NULL && PyErr_Occurred()) {
9011 p->error_indicator = 1;
9012 D(p->level--);
9013 return NULL;
9014 }
9015 goto done;
9016 }
9017 p->mark = _mark;
9018 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
9020 }
9021 _res = NULL;
9022 done:
9023 D(p->level--);
9024 return _res;
9025}
9026
9027// Left-recursive
9028// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
9029static expr_ty bitwise_or_raw(Parser *);
9030static expr_ty
9031bitwise_or_rule(Parser *p)
9032{
9033 D(p->level++);
9034 expr_ty _res = NULL;
9035 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
9036 D(p->level--);
9037 return _res;
9038 }
9039 int _mark = p->mark;
9040 int _resmark = p->mark;
9041 while (1) {
9042 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
9043 if (tmpvar_1) {
9044 D(p->level--);
9045 return _res;
9046 }
9047 p->mark = _mark;
9048 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009049 if (p->error_indicator)
9050 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009051 if (_raw == NULL || p->mark <= _resmark)
9052 break;
9053 _resmark = p->mark;
9054 _res = _raw;
9055 }
9056 p->mark = _resmark;
9057 D(p->level--);
9058 return _res;
9059}
9060static expr_ty
9061bitwise_or_raw(Parser *p)
9062{
9063 D(p->level++);
9064 if (p->error_indicator) {
9065 D(p->level--);
9066 return NULL;
9067 }
9068 expr_ty _res = NULL;
9069 int _mark = p->mark;
9070 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9071 p->error_indicator = 1;
9072 D(p->level--);
9073 return NULL;
9074 }
9075 int _start_lineno = p->tokens[_mark]->lineno;
9076 UNUSED(_start_lineno); // Only used by EXTRA macro
9077 int _start_col_offset = p->tokens[_mark]->col_offset;
9078 UNUSED(_start_col_offset); // Only used by EXTRA macro
9079 { // bitwise_or '|' bitwise_xor
9080 if (p->error_indicator) {
9081 D(p->level--);
9082 return NULL;
9083 }
9084 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9085 Token * _literal;
9086 expr_ty a;
9087 expr_ty b;
9088 if (
9089 (a = bitwise_or_rule(p)) // bitwise_or
9090 &&
9091 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
9092 &&
9093 (b = bitwise_xor_rule(p)) // bitwise_xor
9094 )
9095 {
9096 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9097 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9098 if (_token == NULL) {
9099 D(p->level--);
9100 return NULL;
9101 }
9102 int _end_lineno = _token->end_lineno;
9103 UNUSED(_end_lineno); // Only used by EXTRA macro
9104 int _end_col_offset = _token->end_col_offset;
9105 UNUSED(_end_col_offset); // Only used by EXTRA macro
9106 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9107 if (_res == NULL && PyErr_Occurred()) {
9108 p->error_indicator = 1;
9109 D(p->level--);
9110 return NULL;
9111 }
9112 goto done;
9113 }
9114 p->mark = _mark;
9115 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9117 }
9118 { // bitwise_xor
9119 if (p->error_indicator) {
9120 D(p->level--);
9121 return NULL;
9122 }
9123 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9124 expr_ty bitwise_xor_var;
9125 if (
9126 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
9127 )
9128 {
9129 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9130 _res = bitwise_xor_var;
9131 goto done;
9132 }
9133 p->mark = _mark;
9134 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
9136 }
9137 _res = NULL;
9138 done:
9139 D(p->level--);
9140 return _res;
9141}
9142
9143// Left-recursive
9144// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9145static expr_ty bitwise_xor_raw(Parser *);
9146static expr_ty
9147bitwise_xor_rule(Parser *p)
9148{
9149 D(p->level++);
9150 expr_ty _res = NULL;
9151 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9152 D(p->level--);
9153 return _res;
9154 }
9155 int _mark = p->mark;
9156 int _resmark = p->mark;
9157 while (1) {
9158 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
9159 if (tmpvar_2) {
9160 D(p->level--);
9161 return _res;
9162 }
9163 p->mark = _mark;
9164 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009165 if (p->error_indicator)
9166 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009167 if (_raw == NULL || p->mark <= _resmark)
9168 break;
9169 _resmark = p->mark;
9170 _res = _raw;
9171 }
9172 p->mark = _resmark;
9173 D(p->level--);
9174 return _res;
9175}
9176static expr_ty
9177bitwise_xor_raw(Parser *p)
9178{
9179 D(p->level++);
9180 if (p->error_indicator) {
9181 D(p->level--);
9182 return NULL;
9183 }
9184 expr_ty _res = NULL;
9185 int _mark = p->mark;
9186 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9187 p->error_indicator = 1;
9188 D(p->level--);
9189 return NULL;
9190 }
9191 int _start_lineno = p->tokens[_mark]->lineno;
9192 UNUSED(_start_lineno); // Only used by EXTRA macro
9193 int _start_col_offset = p->tokens[_mark]->col_offset;
9194 UNUSED(_start_col_offset); // Only used by EXTRA macro
9195 { // bitwise_xor '^' bitwise_and
9196 if (p->error_indicator) {
9197 D(p->level--);
9198 return NULL;
9199 }
9200 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9201 Token * _literal;
9202 expr_ty a;
9203 expr_ty b;
9204 if (
9205 (a = bitwise_xor_rule(p)) // bitwise_xor
9206 &&
9207 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
9208 &&
9209 (b = bitwise_and_rule(p)) // bitwise_and
9210 )
9211 {
9212 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9213 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9214 if (_token == NULL) {
9215 D(p->level--);
9216 return NULL;
9217 }
9218 int _end_lineno = _token->end_lineno;
9219 UNUSED(_end_lineno); // Only used by EXTRA macro
9220 int _end_col_offset = _token->end_col_offset;
9221 UNUSED(_end_col_offset); // Only used by EXTRA macro
9222 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9223 if (_res == NULL && PyErr_Occurred()) {
9224 p->error_indicator = 1;
9225 D(p->level--);
9226 return NULL;
9227 }
9228 goto done;
9229 }
9230 p->mark = _mark;
9231 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9233 }
9234 { // bitwise_and
9235 if (p->error_indicator) {
9236 D(p->level--);
9237 return NULL;
9238 }
9239 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9240 expr_ty bitwise_and_var;
9241 if (
9242 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
9243 )
9244 {
9245 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9246 _res = bitwise_and_var;
9247 goto done;
9248 }
9249 p->mark = _mark;
9250 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
9252 }
9253 _res = NULL;
9254 done:
9255 D(p->level--);
9256 return _res;
9257}
9258
9259// Left-recursive
9260// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9261static expr_ty bitwise_and_raw(Parser *);
9262static expr_ty
9263bitwise_and_rule(Parser *p)
9264{
9265 D(p->level++);
9266 expr_ty _res = NULL;
9267 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9268 D(p->level--);
9269 return _res;
9270 }
9271 int _mark = p->mark;
9272 int _resmark = p->mark;
9273 while (1) {
9274 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
9275 if (tmpvar_3) {
9276 D(p->level--);
9277 return _res;
9278 }
9279 p->mark = _mark;
9280 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009281 if (p->error_indicator)
9282 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009283 if (_raw == NULL || p->mark <= _resmark)
9284 break;
9285 _resmark = p->mark;
9286 _res = _raw;
9287 }
9288 p->mark = _resmark;
9289 D(p->level--);
9290 return _res;
9291}
9292static expr_ty
9293bitwise_and_raw(Parser *p)
9294{
9295 D(p->level++);
9296 if (p->error_indicator) {
9297 D(p->level--);
9298 return NULL;
9299 }
9300 expr_ty _res = NULL;
9301 int _mark = p->mark;
9302 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9303 p->error_indicator = 1;
9304 D(p->level--);
9305 return NULL;
9306 }
9307 int _start_lineno = p->tokens[_mark]->lineno;
9308 UNUSED(_start_lineno); // Only used by EXTRA macro
9309 int _start_col_offset = p->tokens[_mark]->col_offset;
9310 UNUSED(_start_col_offset); // Only used by EXTRA macro
9311 { // bitwise_and '&' shift_expr
9312 if (p->error_indicator) {
9313 D(p->level--);
9314 return NULL;
9315 }
9316 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9317 Token * _literal;
9318 expr_ty a;
9319 expr_ty b;
9320 if (
9321 (a = bitwise_and_rule(p)) // bitwise_and
9322 &&
9323 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
9324 &&
9325 (b = shift_expr_rule(p)) // shift_expr
9326 )
9327 {
9328 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9329 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9330 if (_token == NULL) {
9331 D(p->level--);
9332 return NULL;
9333 }
9334 int _end_lineno = _token->end_lineno;
9335 UNUSED(_end_lineno); // Only used by EXTRA macro
9336 int _end_col_offset = _token->end_col_offset;
9337 UNUSED(_end_col_offset); // Only used by EXTRA macro
9338 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9339 if (_res == NULL && PyErr_Occurred()) {
9340 p->error_indicator = 1;
9341 D(p->level--);
9342 return NULL;
9343 }
9344 goto done;
9345 }
9346 p->mark = _mark;
9347 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
9349 }
9350 { // shift_expr
9351 if (p->error_indicator) {
9352 D(p->level--);
9353 return NULL;
9354 }
9355 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9356 expr_ty shift_expr_var;
9357 if (
9358 (shift_expr_var = shift_expr_rule(p)) // shift_expr
9359 )
9360 {
9361 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9362 _res = shift_expr_var;
9363 goto done;
9364 }
9365 p->mark = _mark;
9366 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
9368 }
9369 _res = NULL;
9370 done:
9371 D(p->level--);
9372 return _res;
9373}
9374
9375// Left-recursive
9376// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9377static expr_ty shift_expr_raw(Parser *);
9378static expr_ty
9379shift_expr_rule(Parser *p)
9380{
9381 D(p->level++);
9382 expr_ty _res = NULL;
9383 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9384 D(p->level--);
9385 return _res;
9386 }
9387 int _mark = p->mark;
9388 int _resmark = p->mark;
9389 while (1) {
9390 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
9391 if (tmpvar_4) {
9392 D(p->level--);
9393 return _res;
9394 }
9395 p->mark = _mark;
9396 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009397 if (p->error_indicator)
9398 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009399 if (_raw == NULL || p->mark <= _resmark)
9400 break;
9401 _resmark = p->mark;
9402 _res = _raw;
9403 }
9404 p->mark = _resmark;
9405 D(p->level--);
9406 return _res;
9407}
9408static expr_ty
9409shift_expr_raw(Parser *p)
9410{
9411 D(p->level++);
9412 if (p->error_indicator) {
9413 D(p->level--);
9414 return NULL;
9415 }
9416 expr_ty _res = NULL;
9417 int _mark = p->mark;
9418 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9419 p->error_indicator = 1;
9420 D(p->level--);
9421 return NULL;
9422 }
9423 int _start_lineno = p->tokens[_mark]->lineno;
9424 UNUSED(_start_lineno); // Only used by EXTRA macro
9425 int _start_col_offset = p->tokens[_mark]->col_offset;
9426 UNUSED(_start_col_offset); // Only used by EXTRA macro
9427 { // shift_expr '<<' sum
9428 if (p->error_indicator) {
9429 D(p->level--);
9430 return NULL;
9431 }
9432 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9433 Token * _literal;
9434 expr_ty a;
9435 expr_ty b;
9436 if (
9437 (a = shift_expr_rule(p)) // shift_expr
9438 &&
9439 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
9440 &&
9441 (b = sum_rule(p)) // sum
9442 )
9443 {
9444 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9445 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9446 if (_token == NULL) {
9447 D(p->level--);
9448 return NULL;
9449 }
9450 int _end_lineno = _token->end_lineno;
9451 UNUSED(_end_lineno); // Only used by EXTRA macro
9452 int _end_col_offset = _token->end_col_offset;
9453 UNUSED(_end_col_offset); // Only used by EXTRA macro
9454 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9455 if (_res == NULL && PyErr_Occurred()) {
9456 p->error_indicator = 1;
9457 D(p->level--);
9458 return NULL;
9459 }
9460 goto done;
9461 }
9462 p->mark = _mark;
9463 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
9465 }
9466 { // shift_expr '>>' sum
9467 if (p->error_indicator) {
9468 D(p->level--);
9469 return NULL;
9470 }
9471 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9472 Token * _literal;
9473 expr_ty a;
9474 expr_ty b;
9475 if (
9476 (a = shift_expr_rule(p)) // shift_expr
9477 &&
9478 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
9479 &&
9480 (b = sum_rule(p)) // sum
9481 )
9482 {
9483 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9484 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9485 if (_token == NULL) {
9486 D(p->level--);
9487 return NULL;
9488 }
9489 int _end_lineno = _token->end_lineno;
9490 UNUSED(_end_lineno); // Only used by EXTRA macro
9491 int _end_col_offset = _token->end_col_offset;
9492 UNUSED(_end_col_offset); // Only used by EXTRA macro
9493 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9494 if (_res == NULL && PyErr_Occurred()) {
9495 p->error_indicator = 1;
9496 D(p->level--);
9497 return NULL;
9498 }
9499 goto done;
9500 }
9501 p->mark = _mark;
9502 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
9504 }
9505 { // sum
9506 if (p->error_indicator) {
9507 D(p->level--);
9508 return NULL;
9509 }
9510 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
9511 expr_ty sum_var;
9512 if (
9513 (sum_var = sum_rule(p)) // sum
9514 )
9515 {
9516 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
9517 _res = sum_var;
9518 goto done;
9519 }
9520 p->mark = _mark;
9521 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
9523 }
9524 _res = NULL;
9525 done:
9526 D(p->level--);
9527 return _res;
9528}
9529
9530// Left-recursive
9531// sum: sum '+' term | sum '-' term | term
9532static expr_ty sum_raw(Parser *);
9533static expr_ty
9534sum_rule(Parser *p)
9535{
9536 D(p->level++);
9537 expr_ty _res = NULL;
9538 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9539 D(p->level--);
9540 return _res;
9541 }
9542 int _mark = p->mark;
9543 int _resmark = p->mark;
9544 while (1) {
9545 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
9546 if (tmpvar_5) {
9547 D(p->level--);
9548 return _res;
9549 }
9550 p->mark = _mark;
9551 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009552 if (p->error_indicator)
9553 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009554 if (_raw == NULL || p->mark <= _resmark)
9555 break;
9556 _resmark = p->mark;
9557 _res = _raw;
9558 }
9559 p->mark = _resmark;
9560 D(p->level--);
9561 return _res;
9562}
9563static expr_ty
9564sum_raw(Parser *p)
9565{
9566 D(p->level++);
9567 if (p->error_indicator) {
9568 D(p->level--);
9569 return NULL;
9570 }
9571 expr_ty _res = NULL;
9572 int _mark = p->mark;
9573 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9574 p->error_indicator = 1;
9575 D(p->level--);
9576 return NULL;
9577 }
9578 int _start_lineno = p->tokens[_mark]->lineno;
9579 UNUSED(_start_lineno); // Only used by EXTRA macro
9580 int _start_col_offset = p->tokens[_mark]->col_offset;
9581 UNUSED(_start_col_offset); // Only used by EXTRA macro
9582 { // sum '+' term
9583 if (p->error_indicator) {
9584 D(p->level--);
9585 return NULL;
9586 }
9587 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9588 Token * _literal;
9589 expr_ty a;
9590 expr_ty b;
9591 if (
9592 (a = sum_rule(p)) // sum
9593 &&
9594 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9595 &&
9596 (b = term_rule(p)) // term
9597 )
9598 {
9599 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9600 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9601 if (_token == NULL) {
9602 D(p->level--);
9603 return NULL;
9604 }
9605 int _end_lineno = _token->end_lineno;
9606 UNUSED(_end_lineno); // Only used by EXTRA macro
9607 int _end_col_offset = _token->end_col_offset;
9608 UNUSED(_end_col_offset); // Only used by EXTRA macro
9609 _res = _Py_BinOp ( a , Add , b , EXTRA );
9610 if (_res == NULL && PyErr_Occurred()) {
9611 p->error_indicator = 1;
9612 D(p->level--);
9613 return NULL;
9614 }
9615 goto done;
9616 }
9617 p->mark = _mark;
9618 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
9620 }
9621 { // sum '-' term
9622 if (p->error_indicator) {
9623 D(p->level--);
9624 return NULL;
9625 }
9626 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9627 Token * _literal;
9628 expr_ty a;
9629 expr_ty b;
9630 if (
9631 (a = sum_rule(p)) // sum
9632 &&
9633 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
9634 &&
9635 (b = term_rule(p)) // term
9636 )
9637 {
9638 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9639 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9640 if (_token == NULL) {
9641 D(p->level--);
9642 return NULL;
9643 }
9644 int _end_lineno = _token->end_lineno;
9645 UNUSED(_end_lineno); // Only used by EXTRA macro
9646 int _end_col_offset = _token->end_col_offset;
9647 UNUSED(_end_col_offset); // Only used by EXTRA macro
9648 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9649 if (_res == NULL && PyErr_Occurred()) {
9650 p->error_indicator = 1;
9651 D(p->level--);
9652 return NULL;
9653 }
9654 goto done;
9655 }
9656 p->mark = _mark;
9657 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
9659 }
9660 { // term
9661 if (p->error_indicator) {
9662 D(p->level--);
9663 return NULL;
9664 }
9665 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
9666 expr_ty term_var;
9667 if (
9668 (term_var = term_rule(p)) // term
9669 )
9670 {
9671 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
9672 _res = term_var;
9673 goto done;
9674 }
9675 p->mark = _mark;
9676 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
9678 }
9679 _res = NULL;
9680 done:
9681 D(p->level--);
9682 return _res;
9683}
9684
9685// Left-recursive
9686// term:
9687// | term '*' factor
9688// | term '/' factor
9689// | term '//' factor
9690// | term '%' factor
9691// | term '@' factor
9692// | factor
9693static expr_ty term_raw(Parser *);
9694static expr_ty
9695term_rule(Parser *p)
9696{
9697 D(p->level++);
9698 expr_ty _res = NULL;
9699 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9700 D(p->level--);
9701 return _res;
9702 }
9703 int _mark = p->mark;
9704 int _resmark = p->mark;
9705 while (1) {
9706 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
9707 if (tmpvar_6) {
9708 D(p->level--);
9709 return _res;
9710 }
9711 p->mark = _mark;
9712 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009713 if (p->error_indicator)
9714 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009715 if (_raw == NULL || p->mark <= _resmark)
9716 break;
9717 _resmark = p->mark;
9718 _res = _raw;
9719 }
9720 p->mark = _resmark;
9721 D(p->level--);
9722 return _res;
9723}
9724static expr_ty
9725term_raw(Parser *p)
9726{
9727 D(p->level++);
9728 if (p->error_indicator) {
9729 D(p->level--);
9730 return NULL;
9731 }
9732 expr_ty _res = NULL;
9733 int _mark = p->mark;
9734 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9735 p->error_indicator = 1;
9736 D(p->level--);
9737 return NULL;
9738 }
9739 int _start_lineno = p->tokens[_mark]->lineno;
9740 UNUSED(_start_lineno); // Only used by EXTRA macro
9741 int _start_col_offset = p->tokens[_mark]->col_offset;
9742 UNUSED(_start_col_offset); // Only used by EXTRA macro
9743 { // term '*' factor
9744 if (p->error_indicator) {
9745 D(p->level--);
9746 return NULL;
9747 }
9748 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9749 Token * _literal;
9750 expr_ty a;
9751 expr_ty b;
9752 if (
9753 (a = term_rule(p)) // term
9754 &&
9755 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9756 &&
9757 (b = factor_rule(p)) // factor
9758 )
9759 {
9760 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9761 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9762 if (_token == NULL) {
9763 D(p->level--);
9764 return NULL;
9765 }
9766 int _end_lineno = _token->end_lineno;
9767 UNUSED(_end_lineno); // Only used by EXTRA macro
9768 int _end_col_offset = _token->end_col_offset;
9769 UNUSED(_end_col_offset); // Only used by EXTRA macro
9770 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9771 if (_res == NULL && PyErr_Occurred()) {
9772 p->error_indicator = 1;
9773 D(p->level--);
9774 return NULL;
9775 }
9776 goto done;
9777 }
9778 p->mark = _mark;
9779 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
9781 }
9782 { // term '/' factor
9783 if (p->error_indicator) {
9784 D(p->level--);
9785 return NULL;
9786 }
9787 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9788 Token * _literal;
9789 expr_ty a;
9790 expr_ty b;
9791 if (
9792 (a = term_rule(p)) // term
9793 &&
9794 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9795 &&
9796 (b = factor_rule(p)) // factor
9797 )
9798 {
9799 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9800 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9801 if (_token == NULL) {
9802 D(p->level--);
9803 return NULL;
9804 }
9805 int _end_lineno = _token->end_lineno;
9806 UNUSED(_end_lineno); // Only used by EXTRA macro
9807 int _end_col_offset = _token->end_col_offset;
9808 UNUSED(_end_col_offset); // Only used by EXTRA macro
9809 _res = _Py_BinOp ( a , Div , b , EXTRA );
9810 if (_res == NULL && PyErr_Occurred()) {
9811 p->error_indicator = 1;
9812 D(p->level--);
9813 return NULL;
9814 }
9815 goto done;
9816 }
9817 p->mark = _mark;
9818 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
9820 }
9821 { // term '//' factor
9822 if (p->error_indicator) {
9823 D(p->level--);
9824 return NULL;
9825 }
9826 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9827 Token * _literal;
9828 expr_ty a;
9829 expr_ty b;
9830 if (
9831 (a = term_rule(p)) // term
9832 &&
9833 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
9834 &&
9835 (b = factor_rule(p)) // factor
9836 )
9837 {
9838 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9840 if (_token == NULL) {
9841 D(p->level--);
9842 return NULL;
9843 }
9844 int _end_lineno = _token->end_lineno;
9845 UNUSED(_end_lineno); // Only used by EXTRA macro
9846 int _end_col_offset = _token->end_col_offset;
9847 UNUSED(_end_col_offset); // Only used by EXTRA macro
9848 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9849 if (_res == NULL && PyErr_Occurred()) {
9850 p->error_indicator = 1;
9851 D(p->level--);
9852 return NULL;
9853 }
9854 goto done;
9855 }
9856 p->mark = _mark;
9857 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
9859 }
9860 { // term '%' factor
9861 if (p->error_indicator) {
9862 D(p->level--);
9863 return NULL;
9864 }
9865 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9866 Token * _literal;
9867 expr_ty a;
9868 expr_ty b;
9869 if (
9870 (a = term_rule(p)) // term
9871 &&
9872 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
9873 &&
9874 (b = factor_rule(p)) // factor
9875 )
9876 {
9877 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9878 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9879 if (_token == NULL) {
9880 D(p->level--);
9881 return NULL;
9882 }
9883 int _end_lineno = _token->end_lineno;
9884 UNUSED(_end_lineno); // Only used by EXTRA macro
9885 int _end_col_offset = _token->end_col_offset;
9886 UNUSED(_end_col_offset); // Only used by EXTRA macro
9887 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9888 if (_res == NULL && PyErr_Occurred()) {
9889 p->error_indicator = 1;
9890 D(p->level--);
9891 return NULL;
9892 }
9893 goto done;
9894 }
9895 p->mark = _mark;
9896 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
9898 }
9899 { // term '@' factor
9900 if (p->error_indicator) {
9901 D(p->level--);
9902 return NULL;
9903 }
9904 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9905 Token * _literal;
9906 expr_ty a;
9907 expr_ty b;
9908 if (
9909 (a = term_rule(p)) // term
9910 &&
9911 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
9912 &&
9913 (b = factor_rule(p)) // factor
9914 )
9915 {
9916 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9917 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9918 if (_token == NULL) {
9919 D(p->level--);
9920 return NULL;
9921 }
9922 int _end_lineno = _token->end_lineno;
9923 UNUSED(_end_lineno); // Only used by EXTRA macro
9924 int _end_col_offset = _token->end_col_offset;
9925 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009926 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009927 if (_res == NULL && PyErr_Occurred()) {
9928 p->error_indicator = 1;
9929 D(p->level--);
9930 return NULL;
9931 }
9932 goto done;
9933 }
9934 p->mark = _mark;
9935 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
9937 }
9938 { // factor
9939 if (p->error_indicator) {
9940 D(p->level--);
9941 return NULL;
9942 }
9943 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
9944 expr_ty factor_var;
9945 if (
9946 (factor_var = factor_rule(p)) // factor
9947 )
9948 {
9949 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
9950 _res = factor_var;
9951 goto done;
9952 }
9953 p->mark = _mark;
9954 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
9956 }
9957 _res = NULL;
9958 done:
9959 D(p->level--);
9960 return _res;
9961}
9962
9963// factor: '+' factor | '-' factor | '~' factor | power
9964static expr_ty
9965factor_rule(Parser *p)
9966{
9967 D(p->level++);
9968 if (p->error_indicator) {
9969 D(p->level--);
9970 return NULL;
9971 }
9972 expr_ty _res = NULL;
9973 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9974 D(p->level--);
9975 return _res;
9976 }
9977 int _mark = p->mark;
9978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9979 p->error_indicator = 1;
9980 D(p->level--);
9981 return NULL;
9982 }
9983 int _start_lineno = p->tokens[_mark]->lineno;
9984 UNUSED(_start_lineno); // Only used by EXTRA macro
9985 int _start_col_offset = p->tokens[_mark]->col_offset;
9986 UNUSED(_start_col_offset); // Only used by EXTRA macro
9987 { // '+' factor
9988 if (p->error_indicator) {
9989 D(p->level--);
9990 return NULL;
9991 }
9992 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
9993 Token * _literal;
9994 expr_ty a;
9995 if (
9996 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9997 &&
9998 (a = factor_rule(p)) // factor
9999 )
10000 {
10001 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
10002 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10003 if (_token == NULL) {
10004 D(p->level--);
10005 return NULL;
10006 }
10007 int _end_lineno = _token->end_lineno;
10008 UNUSED(_end_lineno); // Only used by EXTRA macro
10009 int _end_col_offset = _token->end_col_offset;
10010 UNUSED(_end_col_offset); // Only used by EXTRA macro
10011 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
10012 if (_res == NULL && PyErr_Occurred()) {
10013 p->error_indicator = 1;
10014 D(p->level--);
10015 return NULL;
10016 }
10017 goto done;
10018 }
10019 p->mark = _mark;
10020 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
10022 }
10023 { // '-' factor
10024 if (p->error_indicator) {
10025 D(p->level--);
10026 return NULL;
10027 }
10028 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
10029 Token * _literal;
10030 expr_ty a;
10031 if (
10032 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
10033 &&
10034 (a = factor_rule(p)) // factor
10035 )
10036 {
10037 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
10038 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10039 if (_token == NULL) {
10040 D(p->level--);
10041 return NULL;
10042 }
10043 int _end_lineno = _token->end_lineno;
10044 UNUSED(_end_lineno); // Only used by EXTRA macro
10045 int _end_col_offset = _token->end_col_offset;
10046 UNUSED(_end_col_offset); // Only used by EXTRA macro
10047 _res = _Py_UnaryOp ( USub , a , EXTRA );
10048 if (_res == NULL && PyErr_Occurred()) {
10049 p->error_indicator = 1;
10050 D(p->level--);
10051 return NULL;
10052 }
10053 goto done;
10054 }
10055 p->mark = _mark;
10056 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
10058 }
10059 { // '~' factor
10060 if (p->error_indicator) {
10061 D(p->level--);
10062 return NULL;
10063 }
10064 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10065 Token * _literal;
10066 expr_ty a;
10067 if (
10068 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
10069 &&
10070 (a = factor_rule(p)) // factor
10071 )
10072 {
10073 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10074 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10075 if (_token == NULL) {
10076 D(p->level--);
10077 return NULL;
10078 }
10079 int _end_lineno = _token->end_lineno;
10080 UNUSED(_end_lineno); // Only used by EXTRA macro
10081 int _end_col_offset = _token->end_col_offset;
10082 UNUSED(_end_col_offset); // Only used by EXTRA macro
10083 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10084 if (_res == NULL && PyErr_Occurred()) {
10085 p->error_indicator = 1;
10086 D(p->level--);
10087 return NULL;
10088 }
10089 goto done;
10090 }
10091 p->mark = _mark;
10092 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
10094 }
10095 { // power
10096 if (p->error_indicator) {
10097 D(p->level--);
10098 return NULL;
10099 }
10100 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
10101 expr_ty power_var;
10102 if (
10103 (power_var = power_rule(p)) // power
10104 )
10105 {
10106 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
10107 _res = power_var;
10108 goto done;
10109 }
10110 p->mark = _mark;
10111 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
10113 }
10114 _res = NULL;
10115 done:
10116 _PyPegen_insert_memo(p, _mark, factor_type, _res);
10117 D(p->level--);
10118 return _res;
10119}
10120
10121// power: await_primary '**' factor | await_primary
10122static expr_ty
10123power_rule(Parser *p)
10124{
10125 D(p->level++);
10126 if (p->error_indicator) {
10127 D(p->level--);
10128 return NULL;
10129 }
10130 expr_ty _res = NULL;
10131 int _mark = p->mark;
10132 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10133 p->error_indicator = 1;
10134 D(p->level--);
10135 return NULL;
10136 }
10137 int _start_lineno = p->tokens[_mark]->lineno;
10138 UNUSED(_start_lineno); // Only used by EXTRA macro
10139 int _start_col_offset = p->tokens[_mark]->col_offset;
10140 UNUSED(_start_col_offset); // Only used by EXTRA macro
10141 { // await_primary '**' factor
10142 if (p->error_indicator) {
10143 D(p->level--);
10144 return NULL;
10145 }
10146 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10147 Token * _literal;
10148 expr_ty a;
10149 expr_ty b;
10150 if (
10151 (a = await_primary_rule(p)) // await_primary
10152 &&
10153 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10154 &&
10155 (b = factor_rule(p)) // factor
10156 )
10157 {
10158 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10159 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10160 if (_token == NULL) {
10161 D(p->level--);
10162 return NULL;
10163 }
10164 int _end_lineno = _token->end_lineno;
10165 UNUSED(_end_lineno); // Only used by EXTRA macro
10166 int _end_col_offset = _token->end_col_offset;
10167 UNUSED(_end_col_offset); // Only used by EXTRA macro
10168 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10169 if (_res == NULL && PyErr_Occurred()) {
10170 p->error_indicator = 1;
10171 D(p->level--);
10172 return NULL;
10173 }
10174 goto done;
10175 }
10176 p->mark = _mark;
10177 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
10179 }
10180 { // await_primary
10181 if (p->error_indicator) {
10182 D(p->level--);
10183 return NULL;
10184 }
10185 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
10186 expr_ty await_primary_var;
10187 if (
10188 (await_primary_var = await_primary_rule(p)) // await_primary
10189 )
10190 {
10191 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
10192 _res = await_primary_var;
10193 goto done;
10194 }
10195 p->mark = _mark;
10196 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
10198 }
10199 _res = NULL;
10200 done:
10201 D(p->level--);
10202 return _res;
10203}
10204
10205// await_primary: AWAIT primary | primary
10206static expr_ty
10207await_primary_rule(Parser *p)
10208{
10209 D(p->level++);
10210 if (p->error_indicator) {
10211 D(p->level--);
10212 return NULL;
10213 }
10214 expr_ty _res = NULL;
10215 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10216 D(p->level--);
10217 return _res;
10218 }
10219 int _mark = p->mark;
10220 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10221 p->error_indicator = 1;
10222 D(p->level--);
10223 return NULL;
10224 }
10225 int _start_lineno = p->tokens[_mark]->lineno;
10226 UNUSED(_start_lineno); // Only used by EXTRA macro
10227 int _start_col_offset = p->tokens[_mark]->col_offset;
10228 UNUSED(_start_col_offset); // Only used by EXTRA macro
10229 { // AWAIT primary
10230 if (p->error_indicator) {
10231 D(p->level--);
10232 return NULL;
10233 }
10234 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10235 expr_ty a;
10236 Token * await_var;
10237 if (
10238 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
10239 &&
10240 (a = primary_rule(p)) // primary
10241 )
10242 {
10243 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10245 if (_token == NULL) {
10246 D(p->level--);
10247 return NULL;
10248 }
10249 int _end_lineno = _token->end_lineno;
10250 UNUSED(_end_lineno); // Only used by EXTRA macro
10251 int _end_col_offset = _token->end_col_offset;
10252 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010253 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010254 if (_res == NULL && PyErr_Occurred()) {
10255 p->error_indicator = 1;
10256 D(p->level--);
10257 return NULL;
10258 }
10259 goto done;
10260 }
10261 p->mark = _mark;
10262 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
10264 }
10265 { // primary
10266 if (p->error_indicator) {
10267 D(p->level--);
10268 return NULL;
10269 }
10270 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
10271 expr_ty primary_var;
10272 if (
10273 (primary_var = primary_rule(p)) // primary
10274 )
10275 {
10276 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
10277 _res = primary_var;
10278 goto done;
10279 }
10280 p->mark = _mark;
10281 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
10283 }
10284 _res = NULL;
10285 done:
10286 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
10287 D(p->level--);
10288 return _res;
10289}
10290
10291// Left-recursive
10292// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010293// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010294// | primary '.' NAME
10295// | primary genexp
10296// | primary '(' arguments? ')'
10297// | primary '[' slices ']'
10298// | atom
10299static expr_ty primary_raw(Parser *);
10300static expr_ty
10301primary_rule(Parser *p)
10302{
10303 D(p->level++);
10304 expr_ty _res = NULL;
10305 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10306 D(p->level--);
10307 return _res;
10308 }
10309 int _mark = p->mark;
10310 int _resmark = p->mark;
10311 while (1) {
10312 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
10313 if (tmpvar_7) {
10314 D(p->level--);
10315 return _res;
10316 }
10317 p->mark = _mark;
10318 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020010319 if (p->error_indicator)
10320 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010321 if (_raw == NULL || p->mark <= _resmark)
10322 break;
10323 _resmark = p->mark;
10324 _res = _raw;
10325 }
10326 p->mark = _resmark;
10327 D(p->level--);
10328 return _res;
10329}
10330static expr_ty
10331primary_raw(Parser *p)
10332{
10333 D(p->level++);
10334 if (p->error_indicator) {
10335 D(p->level--);
10336 return NULL;
10337 }
10338 expr_ty _res = NULL;
10339 int _mark = p->mark;
10340 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10341 p->error_indicator = 1;
10342 D(p->level--);
10343 return NULL;
10344 }
10345 int _start_lineno = p->tokens[_mark]->lineno;
10346 UNUSED(_start_lineno); // Only used by EXTRA macro
10347 int _start_col_offset = p->tokens[_mark]->col_offset;
10348 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010349 if (p->call_invalid_rules) { // invalid_primary
10350 if (p->error_indicator) {
10351 D(p->level--);
10352 return NULL;
10353 }
10354 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10355 void *invalid_primary_var;
10356 if (
10357 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
10358 )
10359 {
10360 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10361 _res = invalid_primary_var;
10362 goto done;
10363 }
10364 p->mark = _mark;
10365 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
10367 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010368 { // primary '.' NAME
10369 if (p->error_indicator) {
10370 D(p->level--);
10371 return NULL;
10372 }
10373 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10374 Token * _literal;
10375 expr_ty a;
10376 expr_ty b;
10377 if (
10378 (a = primary_rule(p)) // primary
10379 &&
10380 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
10381 &&
10382 (b = _PyPegen_name_token(p)) // NAME
10383 )
10384 {
10385 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10386 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10387 if (_token == NULL) {
10388 D(p->level--);
10389 return NULL;
10390 }
10391 int _end_lineno = _token->end_lineno;
10392 UNUSED(_end_lineno); // Only used by EXTRA macro
10393 int _end_col_offset = _token->end_col_offset;
10394 UNUSED(_end_col_offset); // Only used by EXTRA macro
10395 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10396 if (_res == NULL && PyErr_Occurred()) {
10397 p->error_indicator = 1;
10398 D(p->level--);
10399 return NULL;
10400 }
10401 goto done;
10402 }
10403 p->mark = _mark;
10404 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
10406 }
10407 { // primary genexp
10408 if (p->error_indicator) {
10409 D(p->level--);
10410 return NULL;
10411 }
10412 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10413 expr_ty a;
10414 expr_ty b;
10415 if (
10416 (a = primary_rule(p)) // primary
10417 &&
10418 (b = genexp_rule(p)) // genexp
10419 )
10420 {
10421 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10422 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10423 if (_token == NULL) {
10424 D(p->level--);
10425 return NULL;
10426 }
10427 int _end_lineno = _token->end_lineno;
10428 UNUSED(_end_lineno); // Only used by EXTRA macro
10429 int _end_col_offset = _token->end_col_offset;
10430 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010431 _res = _Py_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010432 if (_res == NULL && PyErr_Occurred()) {
10433 p->error_indicator = 1;
10434 D(p->level--);
10435 return NULL;
10436 }
10437 goto done;
10438 }
10439 p->mark = _mark;
10440 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
10442 }
10443 { // primary '(' arguments? ')'
10444 if (p->error_indicator) {
10445 D(p->level--);
10446 return NULL;
10447 }
10448 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10449 Token * _literal;
10450 Token * _literal_1;
10451 expr_ty a;
10452 void *b;
10453 if (
10454 (a = primary_rule(p)) // primary
10455 &&
10456 (_literal = _PyPegen_expect_token(p, 7)) // token='('
10457 &&
10458 (b = arguments_rule(p), 1) // arguments?
10459 &&
10460 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
10461 )
10462 {
10463 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10464 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10465 if (_token == NULL) {
10466 D(p->level--);
10467 return NULL;
10468 }
10469 int _end_lineno = _token->end_lineno;
10470 UNUSED(_end_lineno); // Only used by EXTRA macro
10471 int _end_col_offset = _token->end_col_offset;
10472 UNUSED(_end_col_offset); // Only used by EXTRA macro
10473 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10474 if (_res == NULL && PyErr_Occurred()) {
10475 p->error_indicator = 1;
10476 D(p->level--);
10477 return NULL;
10478 }
10479 goto done;
10480 }
10481 p->mark = _mark;
10482 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
10484 }
10485 { // primary '[' slices ']'
10486 if (p->error_indicator) {
10487 D(p->level--);
10488 return NULL;
10489 }
10490 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10491 Token * _literal;
10492 Token * _literal_1;
10493 expr_ty a;
10494 expr_ty b;
10495 if (
10496 (a = primary_rule(p)) // primary
10497 &&
10498 (_literal = _PyPegen_expect_token(p, 9)) // token='['
10499 &&
10500 (b = slices_rule(p)) // slices
10501 &&
10502 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
10503 )
10504 {
10505 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10506 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10507 if (_token == NULL) {
10508 D(p->level--);
10509 return NULL;
10510 }
10511 int _end_lineno = _token->end_lineno;
10512 UNUSED(_end_lineno); // Only used by EXTRA macro
10513 int _end_col_offset = _token->end_col_offset;
10514 UNUSED(_end_col_offset); // Only used by EXTRA macro
10515 _res = _Py_Subscript ( a , b , Load , EXTRA );
10516 if (_res == NULL && PyErr_Occurred()) {
10517 p->error_indicator = 1;
10518 D(p->level--);
10519 return NULL;
10520 }
10521 goto done;
10522 }
10523 p->mark = _mark;
10524 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
10526 }
10527 { // atom
10528 if (p->error_indicator) {
10529 D(p->level--);
10530 return NULL;
10531 }
10532 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
10533 expr_ty atom_var;
10534 if (
10535 (atom_var = atom_rule(p)) // atom
10536 )
10537 {
10538 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
10539 _res = atom_var;
10540 goto done;
10541 }
10542 p->mark = _mark;
10543 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
10545 }
10546 _res = NULL;
10547 done:
10548 D(p->level--);
10549 return _res;
10550}
10551
10552// slices: slice !',' | ','.slice+ ','?
10553static expr_ty
10554slices_rule(Parser *p)
10555{
10556 D(p->level++);
10557 if (p->error_indicator) {
10558 D(p->level--);
10559 return NULL;
10560 }
10561 expr_ty _res = NULL;
10562 int _mark = p->mark;
10563 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10564 p->error_indicator = 1;
10565 D(p->level--);
10566 return NULL;
10567 }
10568 int _start_lineno = p->tokens[_mark]->lineno;
10569 UNUSED(_start_lineno); // Only used by EXTRA macro
10570 int _start_col_offset = p->tokens[_mark]->col_offset;
10571 UNUSED(_start_col_offset); // Only used by EXTRA macro
10572 { // slice !','
10573 if (p->error_indicator) {
10574 D(p->level--);
10575 return NULL;
10576 }
10577 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
10578 expr_ty a;
10579 if (
10580 (a = slice_rule(p)) // slice
10581 &&
10582 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
10583 )
10584 {
10585 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
10586 _res = a;
10587 if (_res == NULL && PyErr_Occurred()) {
10588 p->error_indicator = 1;
10589 D(p->level--);
10590 return NULL;
10591 }
10592 goto done;
10593 }
10594 p->mark = _mark;
10595 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
10597 }
10598 { // ','.slice+ ','?
10599 if (p->error_indicator) {
10600 D(p->level--);
10601 return NULL;
10602 }
10603 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10604 void *_opt_var;
10605 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010606 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010607 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010608 (a = (asdl_expr_seq*)_gather_92_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010609 &&
10610 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10611 )
10612 {
10613 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10614 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10615 if (_token == NULL) {
10616 D(p->level--);
10617 return NULL;
10618 }
10619 int _end_lineno = _token->end_lineno;
10620 UNUSED(_end_lineno); // Only used by EXTRA macro
10621 int _end_col_offset = _token->end_col_offset;
10622 UNUSED(_end_col_offset); // Only used by EXTRA macro
10623 _res = _Py_Tuple ( a , Load , EXTRA );
10624 if (_res == NULL && PyErr_Occurred()) {
10625 p->error_indicator = 1;
10626 D(p->level--);
10627 return NULL;
10628 }
10629 goto done;
10630 }
10631 p->mark = _mark;
10632 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
10634 }
10635 _res = NULL;
10636 done:
10637 D(p->level--);
10638 return _res;
10639}
10640
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010641// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010642static expr_ty
10643slice_rule(Parser *p)
10644{
10645 D(p->level++);
10646 if (p->error_indicator) {
10647 D(p->level--);
10648 return NULL;
10649 }
10650 expr_ty _res = NULL;
10651 int _mark = p->mark;
10652 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10653 p->error_indicator = 1;
10654 D(p->level--);
10655 return NULL;
10656 }
10657 int _start_lineno = p->tokens[_mark]->lineno;
10658 UNUSED(_start_lineno); // Only used by EXTRA macro
10659 int _start_col_offset = p->tokens[_mark]->col_offset;
10660 UNUSED(_start_col_offset); // Only used by EXTRA macro
10661 { // expression? ':' expression? [':' expression?]
10662 if (p->error_indicator) {
10663 D(p->level--);
10664 return NULL;
10665 }
10666 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10667 Token * _literal;
10668 void *a;
10669 void *b;
10670 void *c;
10671 if (
10672 (a = expression_rule(p), 1) // expression?
10673 &&
10674 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10675 &&
10676 (b = expression_rule(p), 1) // expression?
10677 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010678 (c = _tmp_94_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010679 )
10680 {
10681 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10682 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10683 if (_token == NULL) {
10684 D(p->level--);
10685 return NULL;
10686 }
10687 int _end_lineno = _token->end_lineno;
10688 UNUSED(_end_lineno); // Only used by EXTRA macro
10689 int _end_col_offset = _token->end_col_offset;
10690 UNUSED(_end_col_offset); // Only used by EXTRA macro
10691 _res = _Py_Slice ( a , b , c , EXTRA );
10692 if (_res == NULL && PyErr_Occurred()) {
10693 p->error_indicator = 1;
10694 D(p->level--);
10695 return NULL;
10696 }
10697 goto done;
10698 }
10699 p->mark = _mark;
10700 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10702 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010703 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010704 if (p->error_indicator) {
10705 D(p->level--);
10706 return NULL;
10707 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010708 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010709 expr_ty a;
10710 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010711 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010712 )
10713 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010714 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010715 _res = a;
10716 if (_res == NULL && PyErr_Occurred()) {
10717 p->error_indicator = 1;
10718 D(p->level--);
10719 return NULL;
10720 }
10721 goto done;
10722 }
10723 p->mark = _mark;
10724 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010726 }
10727 _res = NULL;
10728 done:
10729 D(p->level--);
10730 return _res;
10731}
10732
10733// atom:
10734// | NAME
10735// | 'True'
10736// | 'False'
10737// | 'None'
10738// | &STRING strings
10739// | NUMBER
10740// | &'(' (tuple | group | genexp)
10741// | &'[' (list | listcomp)
10742// | &'{' (dict | set | dictcomp | setcomp)
10743// | '...'
10744static expr_ty
10745atom_rule(Parser *p)
10746{
10747 D(p->level++);
10748 if (p->error_indicator) {
10749 D(p->level--);
10750 return NULL;
10751 }
10752 expr_ty _res = NULL;
10753 int _mark = p->mark;
10754 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10755 p->error_indicator = 1;
10756 D(p->level--);
10757 return NULL;
10758 }
10759 int _start_lineno = p->tokens[_mark]->lineno;
10760 UNUSED(_start_lineno); // Only used by EXTRA macro
10761 int _start_col_offset = p->tokens[_mark]->col_offset;
10762 UNUSED(_start_col_offset); // Only used by EXTRA macro
10763 { // NAME
10764 if (p->error_indicator) {
10765 D(p->level--);
10766 return NULL;
10767 }
10768 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10769 expr_ty name_var;
10770 if (
10771 (name_var = _PyPegen_name_token(p)) // NAME
10772 )
10773 {
10774 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10775 _res = name_var;
10776 goto done;
10777 }
10778 p->mark = _mark;
10779 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10781 }
10782 { // 'True'
10783 if (p->error_indicator) {
10784 D(p->level--);
10785 return NULL;
10786 }
10787 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
10788 Token * _keyword;
10789 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010790 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010791 )
10792 {
10793 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
10794 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10795 if (_token == NULL) {
10796 D(p->level--);
10797 return NULL;
10798 }
10799 int _end_lineno = _token->end_lineno;
10800 UNUSED(_end_lineno); // Only used by EXTRA macro
10801 int _end_col_offset = _token->end_col_offset;
10802 UNUSED(_end_col_offset); // Only used by EXTRA macro
10803 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10804 if (_res == NULL && PyErr_Occurred()) {
10805 p->error_indicator = 1;
10806 D(p->level--);
10807 return NULL;
10808 }
10809 goto done;
10810 }
10811 p->mark = _mark;
10812 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
10814 }
10815 { // 'False'
10816 if (p->error_indicator) {
10817 D(p->level--);
10818 return NULL;
10819 }
10820 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
10821 Token * _keyword;
10822 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010823 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010824 )
10825 {
10826 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
10827 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10828 if (_token == NULL) {
10829 D(p->level--);
10830 return NULL;
10831 }
10832 int _end_lineno = _token->end_lineno;
10833 UNUSED(_end_lineno); // Only used by EXTRA macro
10834 int _end_col_offset = _token->end_col_offset;
10835 UNUSED(_end_col_offset); // Only used by EXTRA macro
10836 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10837 if (_res == NULL && PyErr_Occurred()) {
10838 p->error_indicator = 1;
10839 D(p->level--);
10840 return NULL;
10841 }
10842 goto done;
10843 }
10844 p->mark = _mark;
10845 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
10847 }
10848 { // 'None'
10849 if (p->error_indicator) {
10850 D(p->level--);
10851 return NULL;
10852 }
10853 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
10854 Token * _keyword;
10855 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010856 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010857 )
10858 {
10859 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
10860 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10861 if (_token == NULL) {
10862 D(p->level--);
10863 return NULL;
10864 }
10865 int _end_lineno = _token->end_lineno;
10866 UNUSED(_end_lineno); // Only used by EXTRA macro
10867 int _end_col_offset = _token->end_col_offset;
10868 UNUSED(_end_col_offset); // Only used by EXTRA macro
10869 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10870 if (_res == NULL && PyErr_Occurred()) {
10871 p->error_indicator = 1;
10872 D(p->level--);
10873 return NULL;
10874 }
10875 goto done;
10876 }
10877 p->mark = _mark;
10878 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
10880 }
10881 { // &STRING strings
10882 if (p->error_indicator) {
10883 D(p->level--);
10884 return NULL;
10885 }
10886 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10887 expr_ty strings_var;
10888 if (
10889 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10890 &&
10891 (strings_var = strings_rule(p)) // strings
10892 )
10893 {
10894 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10895 _res = strings_var;
10896 goto done;
10897 }
10898 p->mark = _mark;
10899 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
10901 }
10902 { // NUMBER
10903 if (p->error_indicator) {
10904 D(p->level--);
10905 return NULL;
10906 }
10907 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10908 expr_ty number_var;
10909 if (
10910 (number_var = _PyPegen_number_token(p)) // NUMBER
10911 )
10912 {
10913 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10914 _res = number_var;
10915 goto done;
10916 }
10917 p->mark = _mark;
10918 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
10920 }
10921 { // &'(' (tuple | group | genexp)
10922 if (p->error_indicator) {
10923 D(p->level--);
10924 return NULL;
10925 }
10926 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010927 void *_tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010928 if (
10929 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
10930 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010931 (_tmp_95_var = _tmp_95_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010932 )
10933 {
10934 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010935 _res = _tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010936 goto done;
10937 }
10938 p->mark = _mark;
10939 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
10941 }
10942 { // &'[' (list | listcomp)
10943 if (p->error_indicator) {
10944 D(p->level--);
10945 return NULL;
10946 }
10947 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010948 void *_tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010949 if (
10950 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
10951 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010952 (_tmp_96_var = _tmp_96_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010953 )
10954 {
10955 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010956 _res = _tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010957 goto done;
10958 }
10959 p->mark = _mark;
10960 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
10962 }
10963 { // &'{' (dict | set | dictcomp | setcomp)
10964 if (p->error_indicator) {
10965 D(p->level--);
10966 return NULL;
10967 }
10968 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010969 void *_tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010970 if (
10971 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
10972 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010973 (_tmp_97_var = _tmp_97_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010974 )
10975 {
10976 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010977 _res = _tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010978 goto done;
10979 }
10980 p->mark = _mark;
10981 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
10983 }
10984 { // '...'
10985 if (p->error_indicator) {
10986 D(p->level--);
10987 return NULL;
10988 }
10989 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
10990 Token * _literal;
10991 if (
10992 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
10993 )
10994 {
10995 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
10996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10997 if (_token == NULL) {
10998 D(p->level--);
10999 return NULL;
11000 }
11001 int _end_lineno = _token->end_lineno;
11002 UNUSED(_end_lineno); // Only used by EXTRA macro
11003 int _end_col_offset = _token->end_col_offset;
11004 UNUSED(_end_col_offset); // Only used by EXTRA macro
11005 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
11006 if (_res == NULL && PyErr_Occurred()) {
11007 p->error_indicator = 1;
11008 D(p->level--);
11009 return NULL;
11010 }
11011 goto done;
11012 }
11013 p->mark = _mark;
11014 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
11015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
11016 }
11017 _res = NULL;
11018 done:
11019 D(p->level--);
11020 return _res;
11021}
11022
11023// strings: STRING+
11024static expr_ty
11025strings_rule(Parser *p)
11026{
11027 D(p->level++);
11028 if (p->error_indicator) {
11029 D(p->level--);
11030 return NULL;
11031 }
11032 expr_ty _res = NULL;
11033 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
11034 D(p->level--);
11035 return _res;
11036 }
11037 int _mark = p->mark;
11038 { // STRING+
11039 if (p->error_indicator) {
11040 D(p->level--);
11041 return NULL;
11042 }
11043 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
11044 asdl_seq * a;
11045 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011046 (a = _loop1_98_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011047 )
11048 {
11049 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
11050 _res = _PyPegen_concatenate_strings ( p , a );
11051 if (_res == NULL && PyErr_Occurred()) {
11052 p->error_indicator = 1;
11053 D(p->level--);
11054 return NULL;
11055 }
11056 goto done;
11057 }
11058 p->mark = _mark;
11059 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
11061 }
11062 _res = NULL;
11063 done:
11064 _PyPegen_insert_memo(p, _mark, strings_type, _res);
11065 D(p->level--);
11066 return _res;
11067}
11068
11069// list: '[' star_named_expressions? ']'
11070static expr_ty
11071list_rule(Parser *p)
11072{
11073 D(p->level++);
11074 if (p->error_indicator) {
11075 D(p->level--);
11076 return NULL;
11077 }
11078 expr_ty _res = NULL;
11079 int _mark = p->mark;
11080 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11081 p->error_indicator = 1;
11082 D(p->level--);
11083 return NULL;
11084 }
11085 int _start_lineno = p->tokens[_mark]->lineno;
11086 UNUSED(_start_lineno); // Only used by EXTRA macro
11087 int _start_col_offset = p->tokens[_mark]->col_offset;
11088 UNUSED(_start_col_offset); // Only used by EXTRA macro
11089 { // '[' star_named_expressions? ']'
11090 if (p->error_indicator) {
11091 D(p->level--);
11092 return NULL;
11093 }
11094 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11095 Token * _literal;
11096 Token * _literal_1;
11097 void *a;
11098 if (
11099 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11100 &&
11101 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
11102 &&
11103 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11104 )
11105 {
11106 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11107 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11108 if (_token == NULL) {
11109 D(p->level--);
11110 return NULL;
11111 }
11112 int _end_lineno = _token->end_lineno;
11113 UNUSED(_end_lineno); // Only used by EXTRA macro
11114 int _end_col_offset = _token->end_col_offset;
11115 UNUSED(_end_col_offset); // Only used by EXTRA macro
11116 _res = _Py_List ( a , Load , EXTRA );
11117 if (_res == NULL && PyErr_Occurred()) {
11118 p->error_indicator = 1;
11119 D(p->level--);
11120 return NULL;
11121 }
11122 goto done;
11123 }
11124 p->mark = _mark;
11125 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
11127 }
11128 _res = NULL;
11129 done:
11130 D(p->level--);
11131 return _res;
11132}
11133
Pablo Galindo835f14f2021-01-31 22:52:56 +000011134// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011135static expr_ty
11136listcomp_rule(Parser *p)
11137{
11138 D(p->level++);
11139 if (p->error_indicator) {
11140 D(p->level--);
11141 return NULL;
11142 }
11143 expr_ty _res = NULL;
11144 int _mark = p->mark;
11145 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11146 p->error_indicator = 1;
11147 D(p->level--);
11148 return NULL;
11149 }
11150 int _start_lineno = p->tokens[_mark]->lineno;
11151 UNUSED(_start_lineno); // Only used by EXTRA macro
11152 int _start_col_offset = p->tokens[_mark]->col_offset;
11153 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011154 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011155 if (p->error_indicator) {
11156 D(p->level--);
11157 return NULL;
11158 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011159 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011160 Token * _literal;
11161 Token * _literal_1;
11162 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011163 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011164 if (
11165 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11166 &&
11167 (a = named_expression_rule(p)) // named_expression
11168 &&
11169 (b = for_if_clauses_rule(p)) // for_if_clauses
11170 &&
11171 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11172 )
11173 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011174 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011175 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11176 if (_token == NULL) {
11177 D(p->level--);
11178 return NULL;
11179 }
11180 int _end_lineno = _token->end_lineno;
11181 UNUSED(_end_lineno); // Only used by EXTRA macro
11182 int _end_col_offset = _token->end_col_offset;
11183 UNUSED(_end_col_offset); // Only used by EXTRA macro
11184 _res = _Py_ListComp ( a , b , EXTRA );
11185 if (_res == NULL && PyErr_Occurred()) {
11186 p->error_indicator = 1;
11187 D(p->level--);
11188 return NULL;
11189 }
11190 goto done;
11191 }
11192 p->mark = _mark;
11193 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011195 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011196 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011197 if (p->error_indicator) {
11198 D(p->level--);
11199 return NULL;
11200 }
11201 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11202 void *invalid_comprehension_var;
11203 if (
11204 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11205 )
11206 {
11207 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11208 _res = invalid_comprehension_var;
11209 goto done;
11210 }
11211 p->mark = _mark;
11212 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11214 }
11215 _res = NULL;
11216 done:
11217 D(p->level--);
11218 return _res;
11219}
11220
11221// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11222static expr_ty
11223tuple_rule(Parser *p)
11224{
11225 D(p->level++);
11226 if (p->error_indicator) {
11227 D(p->level--);
11228 return NULL;
11229 }
11230 expr_ty _res = NULL;
11231 int _mark = p->mark;
11232 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11233 p->error_indicator = 1;
11234 D(p->level--);
11235 return NULL;
11236 }
11237 int _start_lineno = p->tokens[_mark]->lineno;
11238 UNUSED(_start_lineno); // Only used by EXTRA macro
11239 int _start_col_offset = p->tokens[_mark]->col_offset;
11240 UNUSED(_start_col_offset); // Only used by EXTRA macro
11241 { // '(' [star_named_expression ',' star_named_expressions?] ')'
11242 if (p->error_indicator) {
11243 D(p->level--);
11244 return NULL;
11245 }
11246 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11247 Token * _literal;
11248 Token * _literal_1;
11249 void *a;
11250 if (
11251 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11252 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011253 (a = _tmp_99_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011254 &&
11255 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11256 )
11257 {
11258 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11259 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11260 if (_token == NULL) {
11261 D(p->level--);
11262 return NULL;
11263 }
11264 int _end_lineno = _token->end_lineno;
11265 UNUSED(_end_lineno); // Only used by EXTRA macro
11266 int _end_col_offset = _token->end_col_offset;
11267 UNUSED(_end_col_offset); // Only used by EXTRA macro
11268 _res = _Py_Tuple ( a , Load , EXTRA );
11269 if (_res == NULL && PyErr_Occurred()) {
11270 p->error_indicator = 1;
11271 D(p->level--);
11272 return NULL;
11273 }
11274 goto done;
11275 }
11276 p->mark = _mark;
11277 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11279 }
11280 _res = NULL;
11281 done:
11282 D(p->level--);
11283 return _res;
11284}
11285
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011286// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011287static expr_ty
11288group_rule(Parser *p)
11289{
11290 D(p->level++);
11291 if (p->error_indicator) {
11292 D(p->level--);
11293 return NULL;
11294 }
11295 expr_ty _res = NULL;
11296 int _mark = p->mark;
11297 { // '(' (yield_expr | named_expression) ')'
11298 if (p->error_indicator) {
11299 D(p->level--);
11300 return NULL;
11301 }
11302 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11303 Token * _literal;
11304 Token * _literal_1;
11305 void *a;
11306 if (
11307 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11308 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011309 (a = _tmp_100_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011310 &&
11311 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11312 )
11313 {
11314 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11315 _res = a;
11316 if (_res == NULL && PyErr_Occurred()) {
11317 p->error_indicator = 1;
11318 D(p->level--);
11319 return NULL;
11320 }
11321 goto done;
11322 }
11323 p->mark = _mark;
11324 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11326 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011327 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011328 if (p->error_indicator) {
11329 D(p->level--);
11330 return NULL;
11331 }
11332 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11333 void *invalid_group_var;
11334 if (
11335 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11336 )
11337 {
11338 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11339 _res = invalid_group_var;
11340 goto done;
11341 }
11342 p->mark = _mark;
11343 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11345 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011346 _res = NULL;
11347 done:
11348 D(p->level--);
11349 return _res;
11350}
11351
Pablo Galindo835f14f2021-01-31 22:52:56 +000011352// genexp: '(' named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011353static expr_ty
11354genexp_rule(Parser *p)
11355{
11356 D(p->level++);
11357 if (p->error_indicator) {
11358 D(p->level--);
11359 return NULL;
11360 }
11361 expr_ty _res = NULL;
11362 int _mark = p->mark;
11363 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11364 p->error_indicator = 1;
11365 D(p->level--);
11366 return NULL;
11367 }
11368 int _start_lineno = p->tokens[_mark]->lineno;
11369 UNUSED(_start_lineno); // Only used by EXTRA macro
11370 int _start_col_offset = p->tokens[_mark]->col_offset;
11371 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011372 { // '(' named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011373 if (p->error_indicator) {
11374 D(p->level--);
11375 return NULL;
11376 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011377 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011378 Token * _literal;
11379 Token * _literal_1;
11380 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011381 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011382 if (
11383 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11384 &&
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011385 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011386 &&
11387 (b = for_if_clauses_rule(p)) // for_if_clauses
11388 &&
11389 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11390 )
11391 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011392 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011393 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11394 if (_token == NULL) {
11395 D(p->level--);
11396 return NULL;
11397 }
11398 int _end_lineno = _token->end_lineno;
11399 UNUSED(_end_lineno); // Only used by EXTRA macro
11400 int _end_col_offset = _token->end_col_offset;
11401 UNUSED(_end_col_offset); // Only used by EXTRA macro
11402 _res = _Py_GeneratorExp ( a , b , EXTRA );
11403 if (_res == NULL && PyErr_Occurred()) {
11404 p->error_indicator = 1;
11405 D(p->level--);
11406 return NULL;
11407 }
11408 goto done;
11409 }
11410 p->mark = _mark;
11411 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011413 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011414 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011415 if (p->error_indicator) {
11416 D(p->level--);
11417 return NULL;
11418 }
11419 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11420 void *invalid_comprehension_var;
11421 if (
11422 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11423 )
11424 {
11425 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11426 _res = invalid_comprehension_var;
11427 goto done;
11428 }
11429 p->mark = _mark;
11430 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11432 }
11433 _res = NULL;
11434 done:
11435 D(p->level--);
11436 return _res;
11437}
11438
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011439// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011440static expr_ty
11441set_rule(Parser *p)
11442{
11443 D(p->level++);
11444 if (p->error_indicator) {
11445 D(p->level--);
11446 return NULL;
11447 }
11448 expr_ty _res = NULL;
11449 int _mark = p->mark;
11450 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11451 p->error_indicator = 1;
11452 D(p->level--);
11453 return NULL;
11454 }
11455 int _start_lineno = p->tokens[_mark]->lineno;
11456 UNUSED(_start_lineno); // Only used by EXTRA macro
11457 int _start_col_offset = p->tokens[_mark]->col_offset;
11458 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011459 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011460 if (p->error_indicator) {
11461 D(p->level--);
11462 return NULL;
11463 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011464 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011465 Token * _literal;
11466 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011467 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011468 if (
11469 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11470 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011471 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011472 &&
11473 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11474 )
11475 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011476 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011477 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11478 if (_token == NULL) {
11479 D(p->level--);
11480 return NULL;
11481 }
11482 int _end_lineno = _token->end_lineno;
11483 UNUSED(_end_lineno); // Only used by EXTRA macro
11484 int _end_col_offset = _token->end_col_offset;
11485 UNUSED(_end_col_offset); // Only used by EXTRA macro
11486 _res = _Py_Set ( a , EXTRA );
11487 if (_res == NULL && PyErr_Occurred()) {
11488 p->error_indicator = 1;
11489 D(p->level--);
11490 return NULL;
11491 }
11492 goto done;
11493 }
11494 p->mark = _mark;
11495 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011497 }
11498 _res = NULL;
11499 done:
11500 D(p->level--);
11501 return _res;
11502}
11503
Pablo Galindo835f14f2021-01-31 22:52:56 +000011504// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011505static expr_ty
11506setcomp_rule(Parser *p)
11507{
11508 D(p->level++);
11509 if (p->error_indicator) {
11510 D(p->level--);
11511 return NULL;
11512 }
11513 expr_ty _res = NULL;
11514 int _mark = p->mark;
11515 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11516 p->error_indicator = 1;
11517 D(p->level--);
11518 return NULL;
11519 }
11520 int _start_lineno = p->tokens[_mark]->lineno;
11521 UNUSED(_start_lineno); // Only used by EXTRA macro
11522 int _start_col_offset = p->tokens[_mark]->col_offset;
11523 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011524 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011525 if (p->error_indicator) {
11526 D(p->level--);
11527 return NULL;
11528 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011529 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011530 Token * _literal;
11531 Token * _literal_1;
11532 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011533 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011534 if (
11535 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11536 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011537 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011538 &&
11539 (b = for_if_clauses_rule(p)) // for_if_clauses
11540 &&
11541 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11542 )
11543 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011544 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011545 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11546 if (_token == NULL) {
11547 D(p->level--);
11548 return NULL;
11549 }
11550 int _end_lineno = _token->end_lineno;
11551 UNUSED(_end_lineno); // Only used by EXTRA macro
11552 int _end_col_offset = _token->end_col_offset;
11553 UNUSED(_end_col_offset); // Only used by EXTRA macro
11554 _res = _Py_SetComp ( a , b , EXTRA );
11555 if (_res == NULL && PyErr_Occurred()) {
11556 p->error_indicator = 1;
11557 D(p->level--);
11558 return NULL;
11559 }
11560 goto done;
11561 }
11562 p->mark = _mark;
11563 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011565 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011566 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011567 if (p->error_indicator) {
11568 D(p->level--);
11569 return NULL;
11570 }
11571 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11572 void *invalid_comprehension_var;
11573 if (
11574 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11575 )
11576 {
11577 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11578 _res = invalid_comprehension_var;
11579 goto done;
11580 }
11581 p->mark = _mark;
11582 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11584 }
11585 _res = NULL;
11586 done:
11587 D(p->level--);
11588 return _res;
11589}
11590
11591// dict: '{' double_starred_kvpairs? '}'
11592static expr_ty
11593dict_rule(Parser *p)
11594{
11595 D(p->level++);
11596 if (p->error_indicator) {
11597 D(p->level--);
11598 return NULL;
11599 }
11600 expr_ty _res = NULL;
11601 int _mark = p->mark;
11602 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11603 p->error_indicator = 1;
11604 D(p->level--);
11605 return NULL;
11606 }
11607 int _start_lineno = p->tokens[_mark]->lineno;
11608 UNUSED(_start_lineno); // Only used by EXTRA macro
11609 int _start_col_offset = p->tokens[_mark]->col_offset;
11610 UNUSED(_start_col_offset); // Only used by EXTRA macro
11611 { // '{' double_starred_kvpairs? '}'
11612 if (p->error_indicator) {
11613 D(p->level--);
11614 return NULL;
11615 }
11616 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11617 Token * _literal;
11618 Token * _literal_1;
11619 void *a;
11620 if (
11621 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11622 &&
11623 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
11624 &&
11625 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11626 )
11627 {
11628 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11629 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11630 if (_token == NULL) {
11631 D(p->level--);
11632 return NULL;
11633 }
11634 int _end_lineno = _token->end_lineno;
11635 UNUSED(_end_lineno); // Only used by EXTRA macro
11636 int _end_col_offset = _token->end_col_offset;
11637 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030011638 _res = _Py_Dict ( CHECK ( asdl_expr_seq * , _PyPegen_get_keys ( p , a ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_values ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011639 if (_res == NULL && PyErr_Occurred()) {
11640 p->error_indicator = 1;
11641 D(p->level--);
11642 return NULL;
11643 }
11644 goto done;
11645 }
11646 p->mark = _mark;
11647 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11649 }
11650 _res = NULL;
11651 done:
11652 D(p->level--);
11653 return _res;
11654}
11655
11656// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
11657static expr_ty
11658dictcomp_rule(Parser *p)
11659{
11660 D(p->level++);
11661 if (p->error_indicator) {
11662 D(p->level--);
11663 return NULL;
11664 }
11665 expr_ty _res = NULL;
11666 int _mark = p->mark;
11667 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11668 p->error_indicator = 1;
11669 D(p->level--);
11670 return NULL;
11671 }
11672 int _start_lineno = p->tokens[_mark]->lineno;
11673 UNUSED(_start_lineno); // Only used by EXTRA macro
11674 int _start_col_offset = p->tokens[_mark]->col_offset;
11675 UNUSED(_start_col_offset); // Only used by EXTRA macro
11676 { // '{' kvpair for_if_clauses '}'
11677 if (p->error_indicator) {
11678 D(p->level--);
11679 return NULL;
11680 }
11681 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11682 Token * _literal;
11683 Token * _literal_1;
11684 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011685 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011686 if (
11687 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11688 &&
11689 (a = kvpair_rule(p)) // kvpair
11690 &&
11691 (b = for_if_clauses_rule(p)) // for_if_clauses
11692 &&
11693 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11694 )
11695 {
11696 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11697 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11698 if (_token == NULL) {
11699 D(p->level--);
11700 return NULL;
11701 }
11702 int _end_lineno = _token->end_lineno;
11703 UNUSED(_end_lineno); // Only used by EXTRA macro
11704 int _end_col_offset = _token->end_col_offset;
11705 UNUSED(_end_col_offset); // Only used by EXTRA macro
11706 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11707 if (_res == NULL && PyErr_Occurred()) {
11708 p->error_indicator = 1;
11709 D(p->level--);
11710 return NULL;
11711 }
11712 goto done;
11713 }
11714 p->mark = _mark;
11715 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11717 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011718 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011719 if (p->error_indicator) {
11720 D(p->level--);
11721 return NULL;
11722 }
11723 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11724 void *invalid_dict_comprehension_var;
11725 if (
11726 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11727 )
11728 {
11729 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11730 _res = invalid_dict_comprehension_var;
11731 goto done;
11732 }
11733 p->mark = _mark;
11734 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
11736 }
11737 _res = NULL;
11738 done:
11739 D(p->level--);
11740 return _res;
11741}
11742
11743// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
11744static asdl_seq*
11745double_starred_kvpairs_rule(Parser *p)
11746{
11747 D(p->level++);
11748 if (p->error_indicator) {
11749 D(p->level--);
11750 return NULL;
11751 }
11752 asdl_seq* _res = NULL;
11753 int _mark = p->mark;
11754 { // ','.double_starred_kvpair+ ','?
11755 if (p->error_indicator) {
11756 D(p->level--);
11757 return NULL;
11758 }
11759 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11760 void *_opt_var;
11761 UNUSED(_opt_var); // Silence compiler warnings
11762 asdl_seq * a;
11763 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011764 (a = _gather_101_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011765 &&
11766 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
11767 )
11768 {
11769 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11770 _res = a;
11771 if (_res == NULL && PyErr_Occurred()) {
11772 p->error_indicator = 1;
11773 D(p->level--);
11774 return NULL;
11775 }
11776 goto done;
11777 }
11778 p->mark = _mark;
11779 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11781 }
11782 _res = NULL;
11783 done:
11784 D(p->level--);
11785 return _res;
11786}
11787
11788// double_starred_kvpair: '**' bitwise_or | kvpair
11789static KeyValuePair*
11790double_starred_kvpair_rule(Parser *p)
11791{
11792 D(p->level++);
11793 if (p->error_indicator) {
11794 D(p->level--);
11795 return NULL;
11796 }
11797 KeyValuePair* _res = NULL;
11798 int _mark = p->mark;
11799 { // '**' bitwise_or
11800 if (p->error_indicator) {
11801 D(p->level--);
11802 return NULL;
11803 }
11804 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11805 Token * _literal;
11806 expr_ty a;
11807 if (
11808 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11809 &&
11810 (a = bitwise_or_rule(p)) // bitwise_or
11811 )
11812 {
11813 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11814 _res = _PyPegen_key_value_pair ( p , NULL , a );
11815 if (_res == NULL && PyErr_Occurred()) {
11816 p->error_indicator = 1;
11817 D(p->level--);
11818 return NULL;
11819 }
11820 goto done;
11821 }
11822 p->mark = _mark;
11823 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
11825 }
11826 { // kvpair
11827 if (p->error_indicator) {
11828 D(p->level--);
11829 return NULL;
11830 }
11831 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
11832 KeyValuePair* kvpair_var;
11833 if (
11834 (kvpair_var = kvpair_rule(p)) // kvpair
11835 )
11836 {
11837 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
11838 _res = kvpair_var;
11839 goto done;
11840 }
11841 p->mark = _mark;
11842 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
11844 }
11845 _res = NULL;
11846 done:
11847 D(p->level--);
11848 return _res;
11849}
11850
11851// kvpair: expression ':' expression
11852static KeyValuePair*
11853kvpair_rule(Parser *p)
11854{
11855 D(p->level++);
11856 if (p->error_indicator) {
11857 D(p->level--);
11858 return NULL;
11859 }
11860 KeyValuePair* _res = NULL;
11861 int _mark = p->mark;
11862 { // expression ':' expression
11863 if (p->error_indicator) {
11864 D(p->level--);
11865 return NULL;
11866 }
11867 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11868 Token * _literal;
11869 expr_ty a;
11870 expr_ty b;
11871 if (
11872 (a = expression_rule(p)) // expression
11873 &&
11874 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
11875 &&
11876 (b = expression_rule(p)) // expression
11877 )
11878 {
11879 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11880 _res = _PyPegen_key_value_pair ( p , a , b );
11881 if (_res == NULL && PyErr_Occurred()) {
11882 p->error_indicator = 1;
11883 D(p->level--);
11884 return NULL;
11885 }
11886 goto done;
11887 }
11888 p->mark = _mark;
11889 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
11891 }
11892 _res = NULL;
11893 done:
11894 D(p->level--);
11895 return _res;
11896}
11897
11898// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010011899static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011900for_if_clauses_rule(Parser *p)
11901{
11902 D(p->level++);
11903 if (p->error_indicator) {
11904 D(p->level--);
11905 return NULL;
11906 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010011907 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011908 int _mark = p->mark;
11909 { // for_if_clause+
11910 if (p->error_indicator) {
11911 D(p->level--);
11912 return NULL;
11913 }
11914 D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010011915 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011916 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011917 (a = (asdl_comprehension_seq*)_loop1_103_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011918 )
11919 {
11920 D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010011921 _res = a;
11922 if (_res == NULL && PyErr_Occurred()) {
11923 p->error_indicator = 1;
11924 D(p->level--);
11925 return NULL;
11926 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011927 goto done;
11928 }
11929 p->mark = _mark;
11930 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
11932 }
11933 _res = NULL;
11934 done:
11935 D(p->level--);
11936 return _res;
11937}
11938
11939// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011940// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11941// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11942// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011943static comprehension_ty
11944for_if_clause_rule(Parser *p)
11945{
11946 D(p->level++);
11947 if (p->error_indicator) {
11948 D(p->level--);
11949 return NULL;
11950 }
11951 comprehension_ty _res = NULL;
11952 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011953 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011954 if (p->error_indicator) {
11955 D(p->level--);
11956 return NULL;
11957 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011958 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11959 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011960 Token * _keyword;
11961 Token * _keyword_1;
11962 expr_ty a;
11963 Token * async_var;
11964 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011965 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011966 if (
11967 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
11968 &&
11969 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
11970 &&
11971 (a = star_targets_rule(p)) // star_targets
11972 &&
11973 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11974 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011975 (_cut_var = 1)
11976 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011977 (b = disjunction_rule(p)) // disjunction
11978 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011979 (c = (asdl_expr_seq*)_loop0_104_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011980 )
11981 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011982 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030011983 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011984 if (_res == NULL && PyErr_Occurred()) {
11985 p->error_indicator = 1;
11986 D(p->level--);
11987 return NULL;
11988 }
11989 goto done;
11990 }
11991 p->mark = _mark;
11992 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11994 if (_cut_var) {
11995 D(p->level--);
11996 return NULL;
11997 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011998 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011999 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012000 if (p->error_indicator) {
12001 D(p->level--);
12002 return NULL;
12003 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012004 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12005 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012006 Token * _keyword;
12007 Token * _keyword_1;
12008 expr_ty a;
12009 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010012010 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012011 if (
12012 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
12013 &&
12014 (a = star_targets_rule(p)) // star_targets
12015 &&
12016 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12017 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012018 (_cut_var = 1)
12019 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012020 (b = disjunction_rule(p)) // disjunction
12021 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012022 (c = (asdl_expr_seq*)_loop0_105_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012023 )
12024 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012025 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012026 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12027 if (_res == NULL && PyErr_Occurred()) {
12028 p->error_indicator = 1;
12029 D(p->level--);
12030 return NULL;
12031 }
12032 goto done;
12033 }
12034 p->mark = _mark;
12035 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12037 if (_cut_var) {
12038 D(p->level--);
12039 return NULL;
12040 }
12041 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012042 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012043 if (p->error_indicator) {
12044 D(p->level--);
12045 return NULL;
12046 }
12047 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12048 void *invalid_for_target_var;
12049 if (
12050 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12051 )
12052 {
12053 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12054 _res = invalid_for_target_var;
12055 goto done;
12056 }
12057 p->mark = _mark;
12058 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012060 }
12061 _res = NULL;
12062 done:
12063 D(p->level--);
12064 return _res;
12065}
12066
12067// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12068static expr_ty
12069yield_expr_rule(Parser *p)
12070{
12071 D(p->level++);
12072 if (p->error_indicator) {
12073 D(p->level--);
12074 return NULL;
12075 }
12076 expr_ty _res = NULL;
12077 int _mark = p->mark;
12078 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12079 p->error_indicator = 1;
12080 D(p->level--);
12081 return NULL;
12082 }
12083 int _start_lineno = p->tokens[_mark]->lineno;
12084 UNUSED(_start_lineno); // Only used by EXTRA macro
12085 int _start_col_offset = p->tokens[_mark]->col_offset;
12086 UNUSED(_start_col_offset); // Only used by EXTRA macro
12087 { // 'yield' 'from' expression
12088 if (p->error_indicator) {
12089 D(p->level--);
12090 return NULL;
12091 }
12092 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12093 Token * _keyword;
12094 Token * _keyword_1;
12095 expr_ty a;
12096 if (
12097 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12098 &&
12099 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
12100 &&
12101 (a = expression_rule(p)) // expression
12102 )
12103 {
12104 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12105 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12106 if (_token == NULL) {
12107 D(p->level--);
12108 return NULL;
12109 }
12110 int _end_lineno = _token->end_lineno;
12111 UNUSED(_end_lineno); // Only used by EXTRA macro
12112 int _end_col_offset = _token->end_col_offset;
12113 UNUSED(_end_col_offset); // Only used by EXTRA macro
12114 _res = _Py_YieldFrom ( a , EXTRA );
12115 if (_res == NULL && PyErr_Occurred()) {
12116 p->error_indicator = 1;
12117 D(p->level--);
12118 return NULL;
12119 }
12120 goto done;
12121 }
12122 p->mark = _mark;
12123 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
12125 }
12126 { // 'yield' star_expressions?
12127 if (p->error_indicator) {
12128 D(p->level--);
12129 return NULL;
12130 }
12131 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12132 Token * _keyword;
12133 void *a;
12134 if (
12135 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12136 &&
12137 (a = star_expressions_rule(p), 1) // star_expressions?
12138 )
12139 {
12140 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12141 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12142 if (_token == NULL) {
12143 D(p->level--);
12144 return NULL;
12145 }
12146 int _end_lineno = _token->end_lineno;
12147 UNUSED(_end_lineno); // Only used by EXTRA macro
12148 int _end_col_offset = _token->end_col_offset;
12149 UNUSED(_end_col_offset); // Only used by EXTRA macro
12150 _res = _Py_Yield ( a , EXTRA );
12151 if (_res == NULL && PyErr_Occurred()) {
12152 p->error_indicator = 1;
12153 D(p->level--);
12154 return NULL;
12155 }
12156 goto done;
12157 }
12158 p->mark = _mark;
12159 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
12161 }
12162 _res = NULL;
12163 done:
12164 D(p->level--);
12165 return _res;
12166}
12167
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012168// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012169static expr_ty
12170arguments_rule(Parser *p)
12171{
12172 D(p->level++);
12173 if (p->error_indicator) {
12174 D(p->level--);
12175 return NULL;
12176 }
12177 expr_ty _res = NULL;
12178 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12179 D(p->level--);
12180 return _res;
12181 }
12182 int _mark = p->mark;
12183 { // args ','? &')'
12184 if (p->error_indicator) {
12185 D(p->level--);
12186 return NULL;
12187 }
12188 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12189 void *_opt_var;
12190 UNUSED(_opt_var); // Silence compiler warnings
12191 expr_ty a;
12192 if (
12193 (a = args_rule(p)) // args
12194 &&
12195 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12196 &&
12197 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
12198 )
12199 {
12200 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12201 _res = a;
12202 if (_res == NULL && PyErr_Occurred()) {
12203 p->error_indicator = 1;
12204 D(p->level--);
12205 return NULL;
12206 }
12207 goto done;
12208 }
12209 p->mark = _mark;
12210 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
12212 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012213 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012214 if (p->error_indicator) {
12215 D(p->level--);
12216 return NULL;
12217 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012218 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12219 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012220 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012221 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012222 )
12223 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012224 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12225 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012226 goto done;
12227 }
12228 p->mark = _mark;
12229 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012231 }
12232 _res = NULL;
12233 done:
12234 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
12235 D(p->level--);
12236 return _res;
12237}
12238
Pablo Galindo4a97b152020-09-02 17:44:19 +010012239// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012240static expr_ty
12241args_rule(Parser *p)
12242{
12243 D(p->level++);
12244 if (p->error_indicator) {
12245 D(p->level--);
12246 return NULL;
12247 }
12248 expr_ty _res = NULL;
12249 int _mark = p->mark;
12250 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12251 p->error_indicator = 1;
12252 D(p->level--);
12253 return NULL;
12254 }
12255 int _start_lineno = p->tokens[_mark]->lineno;
12256 UNUSED(_start_lineno); // Only used by EXTRA macro
12257 int _start_col_offset = p->tokens[_mark]->col_offset;
12258 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo4a97b152020-09-02 17:44:19 +010012259 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012260 if (p->error_indicator) {
12261 D(p->level--);
12262 return NULL;
12263 }
Pablo Galindo4a97b152020-09-02 17:44:19 +010012264 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010012265 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012266 void *b;
12267 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012268 (a = (asdl_expr_seq*)_gather_106_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012269 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012270 (b = _tmp_108_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012271 )
12272 {
Pablo Galindo4a97b152020-09-02 17:44:19 +010012273 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010012274 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12275 if (_token == NULL) {
12276 D(p->level--);
12277 return NULL;
12278 }
12279 int _end_lineno = _token->end_lineno;
12280 UNUSED(_end_lineno); // Only used by EXTRA macro
12281 int _end_col_offset = _token->end_col_offset;
12282 UNUSED(_end_col_offset); // Only used by EXTRA macro
12283 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012284 if (_res == NULL && PyErr_Occurred()) {
12285 p->error_indicator = 1;
12286 D(p->level--);
12287 return NULL;
12288 }
12289 goto done;
12290 }
12291 p->mark = _mark;
12292 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010012293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012294 }
12295 { // kwargs
12296 if (p->error_indicator) {
12297 D(p->level--);
12298 return NULL;
12299 }
12300 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
12301 asdl_seq* a;
12302 if (
12303 (a = kwargs_rule(p)) // kwargs
12304 )
12305 {
12306 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
12307 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12308 if (_token == NULL) {
12309 D(p->level--);
12310 return NULL;
12311 }
12312 int _end_lineno = _token->end_lineno;
12313 UNUSED(_end_lineno); // Only used by EXTRA macro
12314 int _end_col_offset = _token->end_col_offset;
12315 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012316 _res = _Py_Call ( _PyPegen_dummy_name ( p ) , CHECK_NULL_ALLOWED ( asdl_expr_seq * , _PyPegen_seq_extract_starred_exprs ( p , a ) ) , CHECK_NULL_ALLOWED ( asdl_keyword_seq * , _PyPegen_seq_delete_starred_exprs ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012317 if (_res == NULL && PyErr_Occurred()) {
12318 p->error_indicator = 1;
12319 D(p->level--);
12320 return NULL;
12321 }
12322 goto done;
12323 }
12324 p->mark = _mark;
12325 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
12327 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012328 _res = NULL;
12329 done:
12330 D(p->level--);
12331 return _res;
12332}
12333
12334// kwargs:
12335// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12336// | ','.kwarg_or_starred+
12337// | ','.kwarg_or_double_starred+
12338static asdl_seq*
12339kwargs_rule(Parser *p)
12340{
12341 D(p->level++);
12342 if (p->error_indicator) {
12343 D(p->level--);
12344 return NULL;
12345 }
12346 asdl_seq* _res = NULL;
12347 int _mark = p->mark;
12348 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12349 if (p->error_indicator) {
12350 D(p->level--);
12351 return NULL;
12352 }
12353 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12354 Token * _literal;
12355 asdl_seq * a;
12356 asdl_seq * b;
12357 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012358 (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012359 &&
12360 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12361 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012362 (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012363 )
12364 {
12365 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12366 _res = _PyPegen_join_sequences ( p , a , b );
12367 if (_res == NULL && PyErr_Occurred()) {
12368 p->error_indicator = 1;
12369 D(p->level--);
12370 return NULL;
12371 }
12372 goto done;
12373 }
12374 p->mark = _mark;
12375 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12377 }
12378 { // ','.kwarg_or_starred+
12379 if (p->error_indicator) {
12380 D(p->level--);
12381 return NULL;
12382 }
12383 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012384 asdl_seq * _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012385 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012386 (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012387 )
12388 {
12389 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012390 _res = _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012391 goto done;
12392 }
12393 p->mark = _mark;
12394 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
12396 }
12397 { // ','.kwarg_or_double_starred+
12398 if (p->error_indicator) {
12399 D(p->level--);
12400 return NULL;
12401 }
12402 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012403 asdl_seq * _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012404 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012405 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012406 )
12407 {
12408 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012409 _res = _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012410 goto done;
12411 }
12412 p->mark = _mark;
12413 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
12415 }
12416 _res = NULL;
12417 done:
12418 D(p->level--);
12419 return _res;
12420}
12421
12422// starred_expression: '*' expression
12423static expr_ty
12424starred_expression_rule(Parser *p)
12425{
12426 D(p->level++);
12427 if (p->error_indicator) {
12428 D(p->level--);
12429 return NULL;
12430 }
12431 expr_ty _res = NULL;
12432 int _mark = p->mark;
12433 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12434 p->error_indicator = 1;
12435 D(p->level--);
12436 return NULL;
12437 }
12438 int _start_lineno = p->tokens[_mark]->lineno;
12439 UNUSED(_start_lineno); // Only used by EXTRA macro
12440 int _start_col_offset = p->tokens[_mark]->col_offset;
12441 UNUSED(_start_col_offset); // Only used by EXTRA macro
12442 { // '*' expression
12443 if (p->error_indicator) {
12444 D(p->level--);
12445 return NULL;
12446 }
12447 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12448 Token * _literal;
12449 expr_ty a;
12450 if (
12451 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12452 &&
12453 (a = expression_rule(p)) // expression
12454 )
12455 {
12456 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12457 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12458 if (_token == NULL) {
12459 D(p->level--);
12460 return NULL;
12461 }
12462 int _end_lineno = _token->end_lineno;
12463 UNUSED(_end_lineno); // Only used by EXTRA macro
12464 int _end_col_offset = _token->end_col_offset;
12465 UNUSED(_end_col_offset); // Only used by EXTRA macro
12466 _res = _Py_Starred ( a , Load , EXTRA );
12467 if (_res == NULL && PyErr_Occurred()) {
12468 p->error_indicator = 1;
12469 D(p->level--);
12470 return NULL;
12471 }
12472 goto done;
12473 }
12474 p->mark = _mark;
12475 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
12477 }
12478 _res = NULL;
12479 done:
12480 D(p->level--);
12481 return _res;
12482}
12483
12484// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
12485static KeywordOrStarred*
12486kwarg_or_starred_rule(Parser *p)
12487{
12488 D(p->level++);
12489 if (p->error_indicator) {
12490 D(p->level--);
12491 return NULL;
12492 }
12493 KeywordOrStarred* _res = NULL;
12494 int _mark = p->mark;
12495 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12496 p->error_indicator = 1;
12497 D(p->level--);
12498 return NULL;
12499 }
12500 int _start_lineno = p->tokens[_mark]->lineno;
12501 UNUSED(_start_lineno); // Only used by EXTRA macro
12502 int _start_col_offset = p->tokens[_mark]->col_offset;
12503 UNUSED(_start_col_offset); // Only used by EXTRA macro
12504 { // NAME '=' expression
12505 if (p->error_indicator) {
12506 D(p->level--);
12507 return NULL;
12508 }
12509 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12510 Token * _literal;
12511 expr_ty a;
12512 expr_ty b;
12513 if (
12514 (a = _PyPegen_name_token(p)) // NAME
12515 &&
12516 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12517 &&
12518 (b = expression_rule(p)) // expression
12519 )
12520 {
12521 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12522 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12523 if (_token == NULL) {
12524 D(p->level--);
12525 return NULL;
12526 }
12527 int _end_lineno = _token->end_lineno;
12528 UNUSED(_end_lineno); // Only used by EXTRA macro
12529 int _end_col_offset = _token->end_col_offset;
12530 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012531 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012532 if (_res == NULL && PyErr_Occurred()) {
12533 p->error_indicator = 1;
12534 D(p->level--);
12535 return NULL;
12536 }
12537 goto done;
12538 }
12539 p->mark = _mark;
12540 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12542 }
12543 { // starred_expression
12544 if (p->error_indicator) {
12545 D(p->level--);
12546 return NULL;
12547 }
12548 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12549 expr_ty a;
12550 if (
12551 (a = starred_expression_rule(p)) // starred_expression
12552 )
12553 {
12554 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12555 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12556 if (_res == NULL && PyErr_Occurred()) {
12557 p->error_indicator = 1;
12558 D(p->level--);
12559 return NULL;
12560 }
12561 goto done;
12562 }
12563 p->mark = _mark;
12564 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
12566 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012567 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012568 if (p->error_indicator) {
12569 D(p->level--);
12570 return NULL;
12571 }
12572 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12573 void *invalid_kwarg_var;
12574 if (
12575 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12576 )
12577 {
12578 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12579 _res = invalid_kwarg_var;
12580 goto done;
12581 }
12582 p->mark = _mark;
12583 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12585 }
12586 _res = NULL;
12587 done:
12588 D(p->level--);
12589 return _res;
12590}
12591
12592// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
12593static KeywordOrStarred*
12594kwarg_or_double_starred_rule(Parser *p)
12595{
12596 D(p->level++);
12597 if (p->error_indicator) {
12598 D(p->level--);
12599 return NULL;
12600 }
12601 KeywordOrStarred* _res = NULL;
12602 int _mark = p->mark;
12603 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12604 p->error_indicator = 1;
12605 D(p->level--);
12606 return NULL;
12607 }
12608 int _start_lineno = p->tokens[_mark]->lineno;
12609 UNUSED(_start_lineno); // Only used by EXTRA macro
12610 int _start_col_offset = p->tokens[_mark]->col_offset;
12611 UNUSED(_start_col_offset); // Only used by EXTRA macro
12612 { // NAME '=' expression
12613 if (p->error_indicator) {
12614 D(p->level--);
12615 return NULL;
12616 }
12617 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12618 Token * _literal;
12619 expr_ty a;
12620 expr_ty b;
12621 if (
12622 (a = _PyPegen_name_token(p)) // NAME
12623 &&
12624 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12625 &&
12626 (b = expression_rule(p)) // expression
12627 )
12628 {
12629 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12630 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12631 if (_token == NULL) {
12632 D(p->level--);
12633 return NULL;
12634 }
12635 int _end_lineno = _token->end_lineno;
12636 UNUSED(_end_lineno); // Only used by EXTRA macro
12637 int _end_col_offset = _token->end_col_offset;
12638 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012639 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012640 if (_res == NULL && PyErr_Occurred()) {
12641 p->error_indicator = 1;
12642 D(p->level--);
12643 return NULL;
12644 }
12645 goto done;
12646 }
12647 p->mark = _mark;
12648 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12650 }
12651 { // '**' expression
12652 if (p->error_indicator) {
12653 D(p->level--);
12654 return NULL;
12655 }
12656 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12657 Token * _literal;
12658 expr_ty a;
12659 if (
12660 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12661 &&
12662 (a = expression_rule(p)) // expression
12663 )
12664 {
12665 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12666 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12667 if (_token == NULL) {
12668 D(p->level--);
12669 return NULL;
12670 }
12671 int _end_lineno = _token->end_lineno;
12672 UNUSED(_end_lineno); // Only used by EXTRA macro
12673 int _end_col_offset = _token->end_col_offset;
12674 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012675 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012676 if (_res == NULL && PyErr_Occurred()) {
12677 p->error_indicator = 1;
12678 D(p->level--);
12679 return NULL;
12680 }
12681 goto done;
12682 }
12683 p->mark = _mark;
12684 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
12686 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012687 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012688 if (p->error_indicator) {
12689 D(p->level--);
12690 return NULL;
12691 }
12692 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12693 void *invalid_kwarg_var;
12694 if (
12695 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12696 )
12697 {
12698 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12699 _res = invalid_kwarg_var;
12700 goto done;
12701 }
12702 p->mark = _mark;
12703 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12705 }
12706 _res = NULL;
12707 done:
12708 D(p->level--);
12709 return _res;
12710}
12711
12712// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12713static expr_ty
12714star_targets_rule(Parser *p)
12715{
12716 D(p->level++);
12717 if (p->error_indicator) {
12718 D(p->level--);
12719 return NULL;
12720 }
12721 expr_ty _res = NULL;
12722 int _mark = p->mark;
12723 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12724 p->error_indicator = 1;
12725 D(p->level--);
12726 return NULL;
12727 }
12728 int _start_lineno = p->tokens[_mark]->lineno;
12729 UNUSED(_start_lineno); // Only used by EXTRA macro
12730 int _start_col_offset = p->tokens[_mark]->col_offset;
12731 UNUSED(_start_col_offset); // Only used by EXTRA macro
12732 { // star_target !','
12733 if (p->error_indicator) {
12734 D(p->level--);
12735 return NULL;
12736 }
12737 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12738 expr_ty a;
12739 if (
12740 (a = star_target_rule(p)) // star_target
12741 &&
12742 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
12743 )
12744 {
12745 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12746 _res = a;
12747 if (_res == NULL && PyErr_Occurred()) {
12748 p->error_indicator = 1;
12749 D(p->level--);
12750 return NULL;
12751 }
12752 goto done;
12753 }
12754 p->mark = _mark;
12755 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
12757 }
12758 { // star_target ((',' star_target))* ','?
12759 if (p->error_indicator) {
12760 D(p->level--);
12761 return NULL;
12762 }
12763 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12764 void *_opt_var;
12765 UNUSED(_opt_var); // Silence compiler warnings
12766 expr_ty a;
12767 asdl_seq * b;
12768 if (
12769 (a = star_target_rule(p)) // star_target
12770 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012771 (b = _loop0_117_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012772 &&
12773 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12774 )
12775 {
12776 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12778 if (_token == NULL) {
12779 D(p->level--);
12780 return NULL;
12781 }
12782 int _end_lineno = _token->end_lineno;
12783 UNUSED(_end_lineno); // Only used by EXTRA macro
12784 int _end_col_offset = _token->end_col_offset;
12785 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012786 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012787 if (_res == NULL && PyErr_Occurred()) {
12788 p->error_indicator = 1;
12789 D(p->level--);
12790 return NULL;
12791 }
12792 goto done;
12793 }
12794 p->mark = _mark;
12795 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
12797 }
12798 _res = NULL;
12799 done:
12800 D(p->level--);
12801 return _res;
12802}
12803
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012804// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010012805static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012806star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012807{
12808 D(p->level++);
12809 if (p->error_indicator) {
12810 D(p->level--);
12811 return NULL;
12812 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010012813 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012814 int _mark = p->mark;
12815 { // ','.star_target+ ','?
12816 if (p->error_indicator) {
12817 D(p->level--);
12818 return NULL;
12819 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012820 D(fprintf(stderr, "%*c> star_targets_list_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012821 void *_opt_var;
12822 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010012823 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012824 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012825 (a = (asdl_expr_seq*)_gather_118_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012826 &&
12827 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12828 )
12829 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012830 D(fprintf(stderr, "%*c+ star_targets_list_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012831 _res = a;
12832 if (_res == NULL && PyErr_Occurred()) {
12833 p->error_indicator = 1;
12834 D(p->level--);
12835 return NULL;
12836 }
12837 goto done;
12838 }
12839 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012840 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
12842 }
12843 _res = NULL;
12844 done:
12845 D(p->level--);
12846 return _res;
12847}
12848
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012849// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
12850static asdl_expr_seq*
12851star_targets_tuple_seq_rule(Parser *p)
12852{
12853 D(p->level++);
12854 if (p->error_indicator) {
12855 D(p->level--);
12856 return NULL;
12857 }
12858 asdl_expr_seq* _res = NULL;
12859 int _mark = p->mark;
12860 { // star_target ((',' star_target))+ ','?
12861 if (p->error_indicator) {
12862 D(p->level--);
12863 return NULL;
12864 }
12865 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12866 void *_opt_var;
12867 UNUSED(_opt_var); // Silence compiler warnings
12868 expr_ty a;
12869 asdl_seq * b;
12870 if (
12871 (a = star_target_rule(p)) // star_target
12872 &&
12873 (b = _loop1_120_rule(p)) // ((',' star_target))+
12874 &&
12875 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12876 )
12877 {
12878 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12879 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
12880 if (_res == NULL && PyErr_Occurred()) {
12881 p->error_indicator = 1;
12882 D(p->level--);
12883 return NULL;
12884 }
12885 goto done;
12886 }
12887 p->mark = _mark;
12888 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
12889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12890 }
12891 { // star_target ','
12892 if (p->error_indicator) {
12893 D(p->level--);
12894 return NULL;
12895 }
12896 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
12897 Token * _literal;
12898 expr_ty a;
12899 if (
12900 (a = star_target_rule(p)) // star_target
12901 &&
12902 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12903 )
12904 {
12905 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
12906 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
12907 if (_res == NULL && PyErr_Occurred()) {
12908 p->error_indicator = 1;
12909 D(p->level--);
12910 return NULL;
12911 }
12912 goto done;
12913 }
12914 p->mark = _mark;
12915 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
12916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
12917 }
12918 _res = NULL;
12919 done:
12920 D(p->level--);
12921 return _res;
12922}
12923
12924// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012925static expr_ty
12926star_target_rule(Parser *p)
12927{
12928 D(p->level++);
12929 if (p->error_indicator) {
12930 D(p->level--);
12931 return NULL;
12932 }
12933 expr_ty _res = NULL;
12934 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12935 D(p->level--);
12936 return _res;
12937 }
12938 int _mark = p->mark;
12939 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12940 p->error_indicator = 1;
12941 D(p->level--);
12942 return NULL;
12943 }
12944 int _start_lineno = p->tokens[_mark]->lineno;
12945 UNUSED(_start_lineno); // Only used by EXTRA macro
12946 int _start_col_offset = p->tokens[_mark]->col_offset;
12947 UNUSED(_start_col_offset); // Only used by EXTRA macro
12948 { // '*' (!'*' star_target)
12949 if (p->error_indicator) {
12950 D(p->level--);
12951 return NULL;
12952 }
12953 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12954 Token * _literal;
12955 void *a;
12956 if (
12957 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12958 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012959 (a = _tmp_121_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012960 )
12961 {
12962 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12963 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12964 if (_token == NULL) {
12965 D(p->level--);
12966 return NULL;
12967 }
12968 int _end_lineno = _token->end_lineno;
12969 UNUSED(_end_lineno); // Only used by EXTRA macro
12970 int _end_col_offset = _token->end_col_offset;
12971 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012972 _res = _Py_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012973 if (_res == NULL && PyErr_Occurred()) {
12974 p->error_indicator = 1;
12975 D(p->level--);
12976 return NULL;
12977 }
12978 goto done;
12979 }
12980 p->mark = _mark;
12981 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
12983 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012984 { // target_with_star_atom
12985 if (p->error_indicator) {
12986 D(p->level--);
12987 return NULL;
12988 }
12989 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
12990 expr_ty target_with_star_atom_var;
12991 if (
12992 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
12993 )
12994 {
12995 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
12996 _res = target_with_star_atom_var;
12997 goto done;
12998 }
12999 p->mark = _mark;
13000 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
13002 }
13003 _res = NULL;
13004 done:
13005 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
13006 D(p->level--);
13007 return _res;
13008}
13009
13010// target_with_star_atom:
13011// | t_primary '.' NAME !t_lookahead
13012// | t_primary '[' slices ']' !t_lookahead
13013// | star_atom
13014static expr_ty
13015target_with_star_atom_rule(Parser *p)
13016{
13017 D(p->level++);
13018 if (p->error_indicator) {
13019 D(p->level--);
13020 return NULL;
13021 }
13022 expr_ty _res = NULL;
13023 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
13024 D(p->level--);
13025 return _res;
13026 }
13027 int _mark = p->mark;
13028 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13029 p->error_indicator = 1;
13030 D(p->level--);
13031 return NULL;
13032 }
13033 int _start_lineno = p->tokens[_mark]->lineno;
13034 UNUSED(_start_lineno); // Only used by EXTRA macro
13035 int _start_col_offset = p->tokens[_mark]->col_offset;
13036 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013037 { // t_primary '.' NAME !t_lookahead
13038 if (p->error_indicator) {
13039 D(p->level--);
13040 return NULL;
13041 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013042 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013043 Token * _literal;
13044 expr_ty a;
13045 expr_ty b;
13046 if (
13047 (a = t_primary_rule(p)) // t_primary
13048 &&
13049 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13050 &&
13051 (b = _PyPegen_name_token(p)) // NAME
13052 &&
13053 _PyPegen_lookahead(0, t_lookahead_rule, p)
13054 )
13055 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013056 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013057 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13058 if (_token == NULL) {
13059 D(p->level--);
13060 return NULL;
13061 }
13062 int _end_lineno = _token->end_lineno;
13063 UNUSED(_end_lineno); // Only used by EXTRA macro
13064 int _end_col_offset = _token->end_col_offset;
13065 UNUSED(_end_col_offset); // Only used by EXTRA macro
13066 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13067 if (_res == NULL && PyErr_Occurred()) {
13068 p->error_indicator = 1;
13069 D(p->level--);
13070 return NULL;
13071 }
13072 goto done;
13073 }
13074 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013075 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13077 }
13078 { // t_primary '[' slices ']' !t_lookahead
13079 if (p->error_indicator) {
13080 D(p->level--);
13081 return NULL;
13082 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013083 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013084 Token * _literal;
13085 Token * _literal_1;
13086 expr_ty a;
13087 expr_ty b;
13088 if (
13089 (a = t_primary_rule(p)) // t_primary
13090 &&
13091 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13092 &&
13093 (b = slices_rule(p)) // slices
13094 &&
13095 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13096 &&
13097 _PyPegen_lookahead(0, t_lookahead_rule, p)
13098 )
13099 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013100 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013101 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13102 if (_token == NULL) {
13103 D(p->level--);
13104 return NULL;
13105 }
13106 int _end_lineno = _token->end_lineno;
13107 UNUSED(_end_lineno); // Only used by EXTRA macro
13108 int _end_col_offset = _token->end_col_offset;
13109 UNUSED(_end_col_offset); // Only used by EXTRA macro
13110 _res = _Py_Subscript ( a , b , Store , EXTRA );
13111 if (_res == NULL && PyErr_Occurred()) {
13112 p->error_indicator = 1;
13113 D(p->level--);
13114 return NULL;
13115 }
13116 goto done;
13117 }
13118 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013119 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13121 }
13122 { // star_atom
13123 if (p->error_indicator) {
13124 D(p->level--);
13125 return NULL;
13126 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013127 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013128 expr_ty star_atom_var;
13129 if (
13130 (star_atom_var = star_atom_rule(p)) // star_atom
13131 )
13132 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013133 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013134 _res = star_atom_var;
13135 goto done;
13136 }
13137 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013138 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
13140 }
13141 _res = NULL;
13142 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013143 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013144 D(p->level--);
13145 return _res;
13146}
13147
13148// star_atom:
13149// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013150// | '(' target_with_star_atom ')'
13151// | '(' star_targets_tuple_seq? ')'
13152// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013153static expr_ty
13154star_atom_rule(Parser *p)
13155{
13156 D(p->level++);
13157 if (p->error_indicator) {
13158 D(p->level--);
13159 return NULL;
13160 }
13161 expr_ty _res = NULL;
13162 int _mark = p->mark;
13163 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13164 p->error_indicator = 1;
13165 D(p->level--);
13166 return NULL;
13167 }
13168 int _start_lineno = p->tokens[_mark]->lineno;
13169 UNUSED(_start_lineno); // Only used by EXTRA macro
13170 int _start_col_offset = p->tokens[_mark]->col_offset;
13171 UNUSED(_start_col_offset); // Only used by EXTRA macro
13172 { // NAME
13173 if (p->error_indicator) {
13174 D(p->level--);
13175 return NULL;
13176 }
13177 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13178 expr_ty a;
13179 if (
13180 (a = _PyPegen_name_token(p)) // NAME
13181 )
13182 {
13183 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13184 _res = _PyPegen_set_expr_context ( p , a , Store );
13185 if (_res == NULL && PyErr_Occurred()) {
13186 p->error_indicator = 1;
13187 D(p->level--);
13188 return NULL;
13189 }
13190 goto done;
13191 }
13192 p->mark = _mark;
13193 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13195 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013196 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013197 if (p->error_indicator) {
13198 D(p->level--);
13199 return NULL;
13200 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013201 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013202 Token * _literal;
13203 Token * _literal_1;
13204 expr_ty a;
13205 if (
13206 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13207 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013208 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013209 &&
13210 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13211 )
13212 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013213 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013214 _res = _PyPegen_set_expr_context ( p , a , Store );
13215 if (_res == NULL && PyErr_Occurred()) {
13216 p->error_indicator = 1;
13217 D(p->level--);
13218 return NULL;
13219 }
13220 goto done;
13221 }
13222 p->mark = _mark;
13223 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013225 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013226 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013227 if (p->error_indicator) {
13228 D(p->level--);
13229 return NULL;
13230 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013231 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013232 Token * _literal;
13233 Token * _literal_1;
13234 void *a;
13235 if (
13236 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13237 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013238 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013239 &&
13240 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13241 )
13242 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013243 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13245 if (_token == NULL) {
13246 D(p->level--);
13247 return NULL;
13248 }
13249 int _end_lineno = _token->end_lineno;
13250 UNUSED(_end_lineno); // Only used by EXTRA macro
13251 int _end_col_offset = _token->end_col_offset;
13252 UNUSED(_end_col_offset); // Only used by EXTRA macro
13253 _res = _Py_Tuple ( a , Store , EXTRA );
13254 if (_res == NULL && PyErr_Occurred()) {
13255 p->error_indicator = 1;
13256 D(p->level--);
13257 return NULL;
13258 }
13259 goto done;
13260 }
13261 p->mark = _mark;
13262 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013264 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013265 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013266 if (p->error_indicator) {
13267 D(p->level--);
13268 return NULL;
13269 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013270 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013271 Token * _literal;
13272 Token * _literal_1;
13273 void *a;
13274 if (
13275 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13276 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013277 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013278 &&
13279 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13280 )
13281 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013282 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013283 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13284 if (_token == NULL) {
13285 D(p->level--);
13286 return NULL;
13287 }
13288 int _end_lineno = _token->end_lineno;
13289 UNUSED(_end_lineno); // Only used by EXTRA macro
13290 int _end_col_offset = _token->end_col_offset;
13291 UNUSED(_end_col_offset); // Only used by EXTRA macro
13292 _res = _Py_List ( a , Store , EXTRA );
13293 if (_res == NULL && PyErr_Occurred()) {
13294 p->error_indicator = 1;
13295 D(p->level--);
13296 return NULL;
13297 }
13298 goto done;
13299 }
13300 p->mark = _mark;
13301 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013303 }
13304 _res = NULL;
13305 done:
13306 D(p->level--);
13307 return _res;
13308}
13309
13310// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
13311static expr_ty
13312single_target_rule(Parser *p)
13313{
13314 D(p->level++);
13315 if (p->error_indicator) {
13316 D(p->level--);
13317 return NULL;
13318 }
13319 expr_ty _res = NULL;
13320 int _mark = p->mark;
13321 { // single_subscript_attribute_target
13322 if (p->error_indicator) {
13323 D(p->level--);
13324 return NULL;
13325 }
13326 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13327 expr_ty single_subscript_attribute_target_var;
13328 if (
13329 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
13330 )
13331 {
13332 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13333 _res = single_subscript_attribute_target_var;
13334 goto done;
13335 }
13336 p->mark = _mark;
13337 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
13339 }
13340 { // NAME
13341 if (p->error_indicator) {
13342 D(p->level--);
13343 return NULL;
13344 }
13345 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13346 expr_ty a;
13347 if (
13348 (a = _PyPegen_name_token(p)) // NAME
13349 )
13350 {
13351 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13352 _res = _PyPegen_set_expr_context ( p , a , Store );
13353 if (_res == NULL && PyErr_Occurred()) {
13354 p->error_indicator = 1;
13355 D(p->level--);
13356 return NULL;
13357 }
13358 goto done;
13359 }
13360 p->mark = _mark;
13361 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13363 }
13364 { // '(' single_target ')'
13365 if (p->error_indicator) {
13366 D(p->level--);
13367 return NULL;
13368 }
13369 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13370 Token * _literal;
13371 Token * _literal_1;
13372 expr_ty a;
13373 if (
13374 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13375 &&
13376 (a = single_target_rule(p)) // single_target
13377 &&
13378 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13379 )
13380 {
13381 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13382 _res = a;
13383 if (_res == NULL && PyErr_Occurred()) {
13384 p->error_indicator = 1;
13385 D(p->level--);
13386 return NULL;
13387 }
13388 goto done;
13389 }
13390 p->mark = _mark;
13391 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
13393 }
13394 _res = NULL;
13395 done:
13396 D(p->level--);
13397 return _res;
13398}
13399
13400// single_subscript_attribute_target:
13401// | t_primary '.' NAME !t_lookahead
13402// | t_primary '[' slices ']' !t_lookahead
13403static expr_ty
13404single_subscript_attribute_target_rule(Parser *p)
13405{
13406 D(p->level++);
13407 if (p->error_indicator) {
13408 D(p->level--);
13409 return NULL;
13410 }
13411 expr_ty _res = NULL;
13412 int _mark = p->mark;
13413 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13414 p->error_indicator = 1;
13415 D(p->level--);
13416 return NULL;
13417 }
13418 int _start_lineno = p->tokens[_mark]->lineno;
13419 UNUSED(_start_lineno); // Only used by EXTRA macro
13420 int _start_col_offset = p->tokens[_mark]->col_offset;
13421 UNUSED(_start_col_offset); // Only used by EXTRA macro
13422 { // t_primary '.' NAME !t_lookahead
13423 if (p->error_indicator) {
13424 D(p->level--);
13425 return NULL;
13426 }
13427 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13428 Token * _literal;
13429 expr_ty a;
13430 expr_ty b;
13431 if (
13432 (a = t_primary_rule(p)) // t_primary
13433 &&
13434 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13435 &&
13436 (b = _PyPegen_name_token(p)) // NAME
13437 &&
13438 _PyPegen_lookahead(0, t_lookahead_rule, p)
13439 )
13440 {
13441 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13442 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13443 if (_token == NULL) {
13444 D(p->level--);
13445 return NULL;
13446 }
13447 int _end_lineno = _token->end_lineno;
13448 UNUSED(_end_lineno); // Only used by EXTRA macro
13449 int _end_col_offset = _token->end_col_offset;
13450 UNUSED(_end_col_offset); // Only used by EXTRA macro
13451 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13452 if (_res == NULL && PyErr_Occurred()) {
13453 p->error_indicator = 1;
13454 D(p->level--);
13455 return NULL;
13456 }
13457 goto done;
13458 }
13459 p->mark = _mark;
13460 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13462 }
13463 { // t_primary '[' slices ']' !t_lookahead
13464 if (p->error_indicator) {
13465 D(p->level--);
13466 return NULL;
13467 }
13468 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13469 Token * _literal;
13470 Token * _literal_1;
13471 expr_ty a;
13472 expr_ty b;
13473 if (
13474 (a = t_primary_rule(p)) // t_primary
13475 &&
13476 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13477 &&
13478 (b = slices_rule(p)) // slices
13479 &&
13480 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13481 &&
13482 _PyPegen_lookahead(0, t_lookahead_rule, p)
13483 )
13484 {
13485 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13486 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13487 if (_token == NULL) {
13488 D(p->level--);
13489 return NULL;
13490 }
13491 int _end_lineno = _token->end_lineno;
13492 UNUSED(_end_lineno); // Only used by EXTRA macro
13493 int _end_col_offset = _token->end_col_offset;
13494 UNUSED(_end_col_offset); // Only used by EXTRA macro
13495 _res = _Py_Subscript ( a , b , Store , EXTRA );
13496 if (_res == NULL && PyErr_Occurred()) {
13497 p->error_indicator = 1;
13498 D(p->level--);
13499 return NULL;
13500 }
13501 goto done;
13502 }
13503 p->mark = _mark;
13504 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13506 }
13507 _res = NULL;
13508 done:
13509 D(p->level--);
13510 return _res;
13511}
13512
13513// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013514static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013515del_targets_rule(Parser *p)
13516{
13517 D(p->level++);
13518 if (p->error_indicator) {
13519 D(p->level--);
13520 return NULL;
13521 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013522 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013523 int _mark = p->mark;
13524 { // ','.del_target+ ','?
13525 if (p->error_indicator) {
13526 D(p->level--);
13527 return NULL;
13528 }
13529 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13530 void *_opt_var;
13531 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013532 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013533 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013534 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013535 &&
13536 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13537 )
13538 {
13539 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13540 _res = a;
13541 if (_res == NULL && PyErr_Occurred()) {
13542 p->error_indicator = 1;
13543 D(p->level--);
13544 return NULL;
13545 }
13546 goto done;
13547 }
13548 p->mark = _mark;
13549 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
13551 }
13552 _res = NULL;
13553 done:
13554 D(p->level--);
13555 return _res;
13556}
13557
13558// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013559// | t_primary '.' NAME !t_lookahead
13560// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013561// | del_t_atom
13562static expr_ty
13563del_target_rule(Parser *p)
13564{
13565 D(p->level++);
13566 if (p->error_indicator) {
13567 D(p->level--);
13568 return NULL;
13569 }
13570 expr_ty _res = NULL;
13571 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13572 D(p->level--);
13573 return _res;
13574 }
13575 int _mark = p->mark;
13576 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13577 p->error_indicator = 1;
13578 D(p->level--);
13579 return NULL;
13580 }
13581 int _start_lineno = p->tokens[_mark]->lineno;
13582 UNUSED(_start_lineno); // Only used by EXTRA macro
13583 int _start_col_offset = p->tokens[_mark]->col_offset;
13584 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013585 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013586 if (p->error_indicator) {
13587 D(p->level--);
13588 return NULL;
13589 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013590 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013591 Token * _literal;
13592 expr_ty a;
13593 expr_ty b;
13594 if (
13595 (a = t_primary_rule(p)) // t_primary
13596 &&
13597 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13598 &&
13599 (b = _PyPegen_name_token(p)) // NAME
13600 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013601 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013602 )
13603 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013604 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013605 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13606 if (_token == NULL) {
13607 D(p->level--);
13608 return NULL;
13609 }
13610 int _end_lineno = _token->end_lineno;
13611 UNUSED(_end_lineno); // Only used by EXTRA macro
13612 int _end_col_offset = _token->end_col_offset;
13613 UNUSED(_end_col_offset); // Only used by EXTRA macro
13614 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13615 if (_res == NULL && PyErr_Occurred()) {
13616 p->error_indicator = 1;
13617 D(p->level--);
13618 return NULL;
13619 }
13620 goto done;
13621 }
13622 p->mark = _mark;
13623 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013625 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013626 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013627 if (p->error_indicator) {
13628 D(p->level--);
13629 return NULL;
13630 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013631 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013632 Token * _literal;
13633 Token * _literal_1;
13634 expr_ty a;
13635 expr_ty b;
13636 if (
13637 (a = t_primary_rule(p)) // t_primary
13638 &&
13639 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13640 &&
13641 (b = slices_rule(p)) // slices
13642 &&
13643 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13644 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013645 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013646 )
13647 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013648 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013649 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13650 if (_token == NULL) {
13651 D(p->level--);
13652 return NULL;
13653 }
13654 int _end_lineno = _token->end_lineno;
13655 UNUSED(_end_lineno); // Only used by EXTRA macro
13656 int _end_col_offset = _token->end_col_offset;
13657 UNUSED(_end_col_offset); // Only used by EXTRA macro
13658 _res = _Py_Subscript ( a , b , Del , EXTRA );
13659 if (_res == NULL && PyErr_Occurred()) {
13660 p->error_indicator = 1;
13661 D(p->level--);
13662 return NULL;
13663 }
13664 goto done;
13665 }
13666 p->mark = _mark;
13667 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013669 }
13670 { // del_t_atom
13671 if (p->error_indicator) {
13672 D(p->level--);
13673 return NULL;
13674 }
13675 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13676 expr_ty del_t_atom_var;
13677 if (
13678 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
13679 )
13680 {
13681 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13682 _res = del_t_atom_var;
13683 goto done;
13684 }
13685 p->mark = _mark;
13686 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
13688 }
13689 _res = NULL;
13690 done:
13691 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
13692 D(p->level--);
13693 return _res;
13694}
13695
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013696// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013697static expr_ty
13698del_t_atom_rule(Parser *p)
13699{
13700 D(p->level++);
13701 if (p->error_indicator) {
13702 D(p->level--);
13703 return NULL;
13704 }
13705 expr_ty _res = NULL;
13706 int _mark = p->mark;
13707 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13708 p->error_indicator = 1;
13709 D(p->level--);
13710 return NULL;
13711 }
13712 int _start_lineno = p->tokens[_mark]->lineno;
13713 UNUSED(_start_lineno); // Only used by EXTRA macro
13714 int _start_col_offset = p->tokens[_mark]->col_offset;
13715 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013716 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013717 if (p->error_indicator) {
13718 D(p->level--);
13719 return NULL;
13720 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013721 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013722 expr_ty a;
13723 if (
13724 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013725 )
13726 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013727 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013728 _res = _PyPegen_set_expr_context ( p , a , Del );
13729 if (_res == NULL && PyErr_Occurred()) {
13730 p->error_indicator = 1;
13731 D(p->level--);
13732 return NULL;
13733 }
13734 goto done;
13735 }
13736 p->mark = _mark;
13737 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013739 }
13740 { // '(' del_target ')'
13741 if (p->error_indicator) {
13742 D(p->level--);
13743 return NULL;
13744 }
13745 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13746 Token * _literal;
13747 Token * _literal_1;
13748 expr_ty a;
13749 if (
13750 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13751 &&
13752 (a = del_target_rule(p)) // del_target
13753 &&
13754 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13755 )
13756 {
13757 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13758 _res = _PyPegen_set_expr_context ( p , a , Del );
13759 if (_res == NULL && PyErr_Occurred()) {
13760 p->error_indicator = 1;
13761 D(p->level--);
13762 return NULL;
13763 }
13764 goto done;
13765 }
13766 p->mark = _mark;
13767 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
13769 }
13770 { // '(' del_targets? ')'
13771 if (p->error_indicator) {
13772 D(p->level--);
13773 return NULL;
13774 }
13775 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13776 Token * _literal;
13777 Token * _literal_1;
13778 void *a;
13779 if (
13780 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13781 &&
13782 (a = del_targets_rule(p), 1) // del_targets?
13783 &&
13784 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13785 )
13786 {
13787 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13788 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13789 if (_token == NULL) {
13790 D(p->level--);
13791 return NULL;
13792 }
13793 int _end_lineno = _token->end_lineno;
13794 UNUSED(_end_lineno); // Only used by EXTRA macro
13795 int _end_col_offset = _token->end_col_offset;
13796 UNUSED(_end_col_offset); // Only used by EXTRA macro
13797 _res = _Py_Tuple ( a , Del , EXTRA );
13798 if (_res == NULL && PyErr_Occurred()) {
13799 p->error_indicator = 1;
13800 D(p->level--);
13801 return NULL;
13802 }
13803 goto done;
13804 }
13805 p->mark = _mark;
13806 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
13808 }
13809 { // '[' del_targets? ']'
13810 if (p->error_indicator) {
13811 D(p->level--);
13812 return NULL;
13813 }
13814 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13815 Token * _literal;
13816 Token * _literal_1;
13817 void *a;
13818 if (
13819 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13820 &&
13821 (a = del_targets_rule(p), 1) // del_targets?
13822 &&
13823 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13824 )
13825 {
13826 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13827 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13828 if (_token == NULL) {
13829 D(p->level--);
13830 return NULL;
13831 }
13832 int _end_lineno = _token->end_lineno;
13833 UNUSED(_end_lineno); // Only used by EXTRA macro
13834 int _end_col_offset = _token->end_col_offset;
13835 UNUSED(_end_col_offset); // Only used by EXTRA macro
13836 _res = _Py_List ( a , Del , EXTRA );
13837 if (_res == NULL && PyErr_Occurred()) {
13838 p->error_indicator = 1;
13839 D(p->level--);
13840 return NULL;
13841 }
13842 goto done;
13843 }
13844 p->mark = _mark;
13845 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
13847 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013848 _res = NULL;
13849 done:
13850 D(p->level--);
13851 return _res;
13852}
13853
13854// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013855static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013856targets_rule(Parser *p)
13857{
13858 D(p->level++);
13859 if (p->error_indicator) {
13860 D(p->level--);
13861 return NULL;
13862 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013863 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013864 int _mark = p->mark;
13865 { // ','.target+ ','?
13866 if (p->error_indicator) {
13867 D(p->level--);
13868 return NULL;
13869 }
13870 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13871 void *_opt_var;
13872 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013873 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013874 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013875 (a = (asdl_expr_seq*)_gather_124_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013876 &&
13877 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13878 )
13879 {
13880 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13881 _res = a;
13882 if (_res == NULL && PyErr_Occurred()) {
13883 p->error_indicator = 1;
13884 D(p->level--);
13885 return NULL;
13886 }
13887 goto done;
13888 }
13889 p->mark = _mark;
13890 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
13892 }
13893 _res = NULL;
13894 done:
13895 D(p->level--);
13896 return _res;
13897}
13898
13899// target:
13900// | t_primary '.' NAME !t_lookahead
13901// | t_primary '[' slices ']' !t_lookahead
13902// | t_atom
13903static expr_ty
13904target_rule(Parser *p)
13905{
13906 D(p->level++);
13907 if (p->error_indicator) {
13908 D(p->level--);
13909 return NULL;
13910 }
13911 expr_ty _res = NULL;
13912 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13913 D(p->level--);
13914 return _res;
13915 }
13916 int _mark = p->mark;
13917 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13918 p->error_indicator = 1;
13919 D(p->level--);
13920 return NULL;
13921 }
13922 int _start_lineno = p->tokens[_mark]->lineno;
13923 UNUSED(_start_lineno); // Only used by EXTRA macro
13924 int _start_col_offset = p->tokens[_mark]->col_offset;
13925 UNUSED(_start_col_offset); // Only used by EXTRA macro
13926 { // t_primary '.' NAME !t_lookahead
13927 if (p->error_indicator) {
13928 D(p->level--);
13929 return NULL;
13930 }
13931 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13932 Token * _literal;
13933 expr_ty a;
13934 expr_ty b;
13935 if (
13936 (a = t_primary_rule(p)) // t_primary
13937 &&
13938 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13939 &&
13940 (b = _PyPegen_name_token(p)) // NAME
13941 &&
13942 _PyPegen_lookahead(0, t_lookahead_rule, p)
13943 )
13944 {
13945 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13947 if (_token == NULL) {
13948 D(p->level--);
13949 return NULL;
13950 }
13951 int _end_lineno = _token->end_lineno;
13952 UNUSED(_end_lineno); // Only used by EXTRA macro
13953 int _end_col_offset = _token->end_col_offset;
13954 UNUSED(_end_col_offset); // Only used by EXTRA macro
13955 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13956 if (_res == NULL && PyErr_Occurred()) {
13957 p->error_indicator = 1;
13958 D(p->level--);
13959 return NULL;
13960 }
13961 goto done;
13962 }
13963 p->mark = _mark;
13964 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13966 }
13967 { // t_primary '[' slices ']' !t_lookahead
13968 if (p->error_indicator) {
13969 D(p->level--);
13970 return NULL;
13971 }
13972 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13973 Token * _literal;
13974 Token * _literal_1;
13975 expr_ty a;
13976 expr_ty b;
13977 if (
13978 (a = t_primary_rule(p)) // t_primary
13979 &&
13980 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13981 &&
13982 (b = slices_rule(p)) // slices
13983 &&
13984 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13985 &&
13986 _PyPegen_lookahead(0, t_lookahead_rule, p)
13987 )
13988 {
13989 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13990 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13991 if (_token == NULL) {
13992 D(p->level--);
13993 return NULL;
13994 }
13995 int _end_lineno = _token->end_lineno;
13996 UNUSED(_end_lineno); // Only used by EXTRA macro
13997 int _end_col_offset = _token->end_col_offset;
13998 UNUSED(_end_col_offset); // Only used by EXTRA macro
13999 _res = _Py_Subscript ( a , b , Store , EXTRA );
14000 if (_res == NULL && PyErr_Occurred()) {
14001 p->error_indicator = 1;
14002 D(p->level--);
14003 return NULL;
14004 }
14005 goto done;
14006 }
14007 p->mark = _mark;
14008 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
14009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
14010 }
14011 { // t_atom
14012 if (p->error_indicator) {
14013 D(p->level--);
14014 return NULL;
14015 }
14016 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
14017 expr_ty t_atom_var;
14018 if (
14019 (t_atom_var = t_atom_rule(p)) // t_atom
14020 )
14021 {
14022 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
14023 _res = t_atom_var;
14024 goto done;
14025 }
14026 p->mark = _mark;
14027 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
14028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
14029 }
14030 _res = NULL;
14031 done:
14032 _PyPegen_insert_memo(p, _mark, target_type, _res);
14033 D(p->level--);
14034 return _res;
14035}
14036
14037// Left-recursive
14038// t_primary:
14039// | t_primary '.' NAME &t_lookahead
14040// | t_primary '[' slices ']' &t_lookahead
14041// | t_primary genexp &t_lookahead
14042// | t_primary '(' arguments? ')' &t_lookahead
14043// | atom &t_lookahead
14044static expr_ty t_primary_raw(Parser *);
14045static expr_ty
14046t_primary_rule(Parser *p)
14047{
14048 D(p->level++);
14049 expr_ty _res = NULL;
14050 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
14051 D(p->level--);
14052 return _res;
14053 }
14054 int _mark = p->mark;
14055 int _resmark = p->mark;
14056 while (1) {
14057 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
14058 if (tmpvar_8) {
14059 D(p->level--);
14060 return _res;
14061 }
14062 p->mark = _mark;
14063 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020014064 if (p->error_indicator)
14065 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014066 if (_raw == NULL || p->mark <= _resmark)
14067 break;
14068 _resmark = p->mark;
14069 _res = _raw;
14070 }
14071 p->mark = _resmark;
14072 D(p->level--);
14073 return _res;
14074}
14075static expr_ty
14076t_primary_raw(Parser *p)
14077{
14078 D(p->level++);
14079 if (p->error_indicator) {
14080 D(p->level--);
14081 return NULL;
14082 }
14083 expr_ty _res = NULL;
14084 int _mark = p->mark;
14085 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14086 p->error_indicator = 1;
14087 D(p->level--);
14088 return NULL;
14089 }
14090 int _start_lineno = p->tokens[_mark]->lineno;
14091 UNUSED(_start_lineno); // Only used by EXTRA macro
14092 int _start_col_offset = p->tokens[_mark]->col_offset;
14093 UNUSED(_start_col_offset); // Only used by EXTRA macro
14094 { // t_primary '.' NAME &t_lookahead
14095 if (p->error_indicator) {
14096 D(p->level--);
14097 return NULL;
14098 }
14099 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14100 Token * _literal;
14101 expr_ty a;
14102 expr_ty b;
14103 if (
14104 (a = t_primary_rule(p)) // t_primary
14105 &&
14106 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14107 &&
14108 (b = _PyPegen_name_token(p)) // NAME
14109 &&
14110 _PyPegen_lookahead(1, t_lookahead_rule, p)
14111 )
14112 {
14113 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14115 if (_token == NULL) {
14116 D(p->level--);
14117 return NULL;
14118 }
14119 int _end_lineno = _token->end_lineno;
14120 UNUSED(_end_lineno); // Only used by EXTRA macro
14121 int _end_col_offset = _token->end_col_offset;
14122 UNUSED(_end_col_offset); // Only used by EXTRA macro
14123 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
14124 if (_res == NULL && PyErr_Occurred()) {
14125 p->error_indicator = 1;
14126 D(p->level--);
14127 return NULL;
14128 }
14129 goto done;
14130 }
14131 p->mark = _mark;
14132 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14134 }
14135 { // t_primary '[' slices ']' &t_lookahead
14136 if (p->error_indicator) {
14137 D(p->level--);
14138 return NULL;
14139 }
14140 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14141 Token * _literal;
14142 Token * _literal_1;
14143 expr_ty a;
14144 expr_ty b;
14145 if (
14146 (a = t_primary_rule(p)) // t_primary
14147 &&
14148 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14149 &&
14150 (b = slices_rule(p)) // slices
14151 &&
14152 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14153 &&
14154 _PyPegen_lookahead(1, t_lookahead_rule, p)
14155 )
14156 {
14157 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14159 if (_token == NULL) {
14160 D(p->level--);
14161 return NULL;
14162 }
14163 int _end_lineno = _token->end_lineno;
14164 UNUSED(_end_lineno); // Only used by EXTRA macro
14165 int _end_col_offset = _token->end_col_offset;
14166 UNUSED(_end_col_offset); // Only used by EXTRA macro
14167 _res = _Py_Subscript ( a , b , Load , EXTRA );
14168 if (_res == NULL && PyErr_Occurred()) {
14169 p->error_indicator = 1;
14170 D(p->level--);
14171 return NULL;
14172 }
14173 goto done;
14174 }
14175 p->mark = _mark;
14176 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14178 }
14179 { // t_primary genexp &t_lookahead
14180 if (p->error_indicator) {
14181 D(p->level--);
14182 return NULL;
14183 }
14184 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14185 expr_ty a;
14186 expr_ty b;
14187 if (
14188 (a = t_primary_rule(p)) // t_primary
14189 &&
14190 (b = genexp_rule(p)) // genexp
14191 &&
14192 _PyPegen_lookahead(1, t_lookahead_rule, p)
14193 )
14194 {
14195 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14196 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14197 if (_token == NULL) {
14198 D(p->level--);
14199 return NULL;
14200 }
14201 int _end_lineno = _token->end_lineno;
14202 UNUSED(_end_lineno); // Only used by EXTRA macro
14203 int _end_col_offset = _token->end_col_offset;
14204 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014205 _res = _Py_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014206 if (_res == NULL && PyErr_Occurred()) {
14207 p->error_indicator = 1;
14208 D(p->level--);
14209 return NULL;
14210 }
14211 goto done;
14212 }
14213 p->mark = _mark;
14214 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
14216 }
14217 { // t_primary '(' arguments? ')' &t_lookahead
14218 if (p->error_indicator) {
14219 D(p->level--);
14220 return NULL;
14221 }
14222 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14223 Token * _literal;
14224 Token * _literal_1;
14225 expr_ty a;
14226 void *b;
14227 if (
14228 (a = t_primary_rule(p)) // t_primary
14229 &&
14230 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14231 &&
14232 (b = arguments_rule(p), 1) // arguments?
14233 &&
14234 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14235 &&
14236 _PyPegen_lookahead(1, t_lookahead_rule, p)
14237 )
14238 {
14239 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14240 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14241 if (_token == NULL) {
14242 D(p->level--);
14243 return NULL;
14244 }
14245 int _end_lineno = _token->end_lineno;
14246 UNUSED(_end_lineno); // Only used by EXTRA macro
14247 int _end_col_offset = _token->end_col_offset;
14248 UNUSED(_end_col_offset); // Only used by EXTRA macro
14249 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14250 if (_res == NULL && PyErr_Occurred()) {
14251 p->error_indicator = 1;
14252 D(p->level--);
14253 return NULL;
14254 }
14255 goto done;
14256 }
14257 p->mark = _mark;
14258 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14260 }
14261 { // atom &t_lookahead
14262 if (p->error_indicator) {
14263 D(p->level--);
14264 return NULL;
14265 }
14266 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14267 expr_ty a;
14268 if (
14269 (a = atom_rule(p)) // atom
14270 &&
14271 _PyPegen_lookahead(1, t_lookahead_rule, p)
14272 )
14273 {
14274 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14275 _res = a;
14276 if (_res == NULL && PyErr_Occurred()) {
14277 p->error_indicator = 1;
14278 D(p->level--);
14279 return NULL;
14280 }
14281 goto done;
14282 }
14283 p->mark = _mark;
14284 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
14286 }
14287 _res = NULL;
14288 done:
14289 D(p->level--);
14290 return _res;
14291}
14292
14293// t_lookahead: '(' | '[' | '.'
14294static void *
14295t_lookahead_rule(Parser *p)
14296{
14297 D(p->level++);
14298 if (p->error_indicator) {
14299 D(p->level--);
14300 return NULL;
14301 }
14302 void * _res = NULL;
14303 int _mark = p->mark;
14304 { // '('
14305 if (p->error_indicator) {
14306 D(p->level--);
14307 return NULL;
14308 }
14309 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
14310 Token * _literal;
14311 if (
14312 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14313 )
14314 {
14315 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
14316 _res = _literal;
14317 goto done;
14318 }
14319 p->mark = _mark;
14320 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
14322 }
14323 { // '['
14324 if (p->error_indicator) {
14325 D(p->level--);
14326 return NULL;
14327 }
14328 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
14329 Token * _literal;
14330 if (
14331 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14332 )
14333 {
14334 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
14335 _res = _literal;
14336 goto done;
14337 }
14338 p->mark = _mark;
14339 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
14341 }
14342 { // '.'
14343 if (p->error_indicator) {
14344 D(p->level--);
14345 return NULL;
14346 }
14347 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
14348 Token * _literal;
14349 if (
14350 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14351 )
14352 {
14353 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
14354 _res = _literal;
14355 goto done;
14356 }
14357 p->mark = _mark;
14358 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
14360 }
14361 _res = NULL;
14362 done:
14363 D(p->level--);
14364 return _res;
14365}
14366
14367// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14368static expr_ty
14369t_atom_rule(Parser *p)
14370{
14371 D(p->level++);
14372 if (p->error_indicator) {
14373 D(p->level--);
14374 return NULL;
14375 }
14376 expr_ty _res = NULL;
14377 int _mark = p->mark;
14378 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14379 p->error_indicator = 1;
14380 D(p->level--);
14381 return NULL;
14382 }
14383 int _start_lineno = p->tokens[_mark]->lineno;
14384 UNUSED(_start_lineno); // Only used by EXTRA macro
14385 int _start_col_offset = p->tokens[_mark]->col_offset;
14386 UNUSED(_start_col_offset); // Only used by EXTRA macro
14387 { // NAME
14388 if (p->error_indicator) {
14389 D(p->level--);
14390 return NULL;
14391 }
14392 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14393 expr_ty a;
14394 if (
14395 (a = _PyPegen_name_token(p)) // NAME
14396 )
14397 {
14398 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14399 _res = _PyPegen_set_expr_context ( p , a , Store );
14400 if (_res == NULL && PyErr_Occurred()) {
14401 p->error_indicator = 1;
14402 D(p->level--);
14403 return NULL;
14404 }
14405 goto done;
14406 }
14407 p->mark = _mark;
14408 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14410 }
14411 { // '(' target ')'
14412 if (p->error_indicator) {
14413 D(p->level--);
14414 return NULL;
14415 }
14416 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14417 Token * _literal;
14418 Token * _literal_1;
14419 expr_ty a;
14420 if (
14421 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14422 &&
14423 (a = target_rule(p)) // target
14424 &&
14425 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14426 )
14427 {
14428 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14429 _res = _PyPegen_set_expr_context ( p , a , Store );
14430 if (_res == NULL && PyErr_Occurred()) {
14431 p->error_indicator = 1;
14432 D(p->level--);
14433 return NULL;
14434 }
14435 goto done;
14436 }
14437 p->mark = _mark;
14438 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
14440 }
14441 { // '(' targets? ')'
14442 if (p->error_indicator) {
14443 D(p->level--);
14444 return NULL;
14445 }
14446 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14447 Token * _literal;
14448 Token * _literal_1;
14449 void *b;
14450 if (
14451 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14452 &&
14453 (b = targets_rule(p), 1) // targets?
14454 &&
14455 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14456 )
14457 {
14458 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14459 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14460 if (_token == NULL) {
14461 D(p->level--);
14462 return NULL;
14463 }
14464 int _end_lineno = _token->end_lineno;
14465 UNUSED(_end_lineno); // Only used by EXTRA macro
14466 int _end_col_offset = _token->end_col_offset;
14467 UNUSED(_end_col_offset); // Only used by EXTRA macro
14468 _res = _Py_Tuple ( b , Store , EXTRA );
14469 if (_res == NULL && PyErr_Occurred()) {
14470 p->error_indicator = 1;
14471 D(p->level--);
14472 return NULL;
14473 }
14474 goto done;
14475 }
14476 p->mark = _mark;
14477 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
14479 }
14480 { // '[' targets? ']'
14481 if (p->error_indicator) {
14482 D(p->level--);
14483 return NULL;
14484 }
14485 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14486 Token * _literal;
14487 Token * _literal_1;
14488 void *b;
14489 if (
14490 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14491 &&
14492 (b = targets_rule(p), 1) // targets?
14493 &&
14494 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14495 )
14496 {
14497 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14498 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14499 if (_token == NULL) {
14500 D(p->level--);
14501 return NULL;
14502 }
14503 int _end_lineno = _token->end_lineno;
14504 UNUSED(_end_lineno); // Only used by EXTRA macro
14505 int _end_col_offset = _token->end_col_offset;
14506 UNUSED(_end_col_offset); // Only used by EXTRA macro
14507 _res = _Py_List ( b , Store , EXTRA );
14508 if (_res == NULL && PyErr_Occurred()) {
14509 p->error_indicator = 1;
14510 D(p->level--);
14511 return NULL;
14512 }
14513 goto done;
14514 }
14515 p->mark = _mark;
14516 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
14518 }
14519 _res = NULL;
14520 done:
14521 D(p->level--);
14522 return _res;
14523}
14524
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014525// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014526// | args ',' '*'
14527// | expression for_if_clauses ',' [args | expression for_if_clauses]
14528// | args for_if_clauses
14529// | args ',' expression for_if_clauses
14530// | args ',' args
14531static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014532invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014533{
14534 D(p->level++);
14535 if (p->error_indicator) {
14536 D(p->level--);
14537 return NULL;
14538 }
14539 void * _res = NULL;
14540 int _mark = p->mark;
14541 { // args ',' '*'
14542 if (p->error_indicator) {
14543 D(p->level--);
14544 return NULL;
14545 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014546 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014547 Token * _literal;
14548 Token * _literal_1;
14549 expr_ty args_var;
14550 if (
14551 (args_var = args_rule(p)) // args
14552 &&
14553 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14554 &&
14555 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
14556 )
14557 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014558 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014559 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14560 if (_res == NULL && PyErr_Occurred()) {
14561 p->error_indicator = 1;
14562 D(p->level--);
14563 return NULL;
14564 }
14565 goto done;
14566 }
14567 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014568 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
14570 }
14571 { // expression for_if_clauses ',' [args | expression for_if_clauses]
14572 if (p->error_indicator) {
14573 D(p->level--);
14574 return NULL;
14575 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014576 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014577 Token * _literal;
14578 void *_opt_var;
14579 UNUSED(_opt_var); // Silence compiler warnings
14580 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014581 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014582 if (
14583 (a = expression_rule(p)) // expression
14584 &&
14585 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14586 &&
14587 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14588 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014589 (_opt_var = _tmp_126_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014590 )
14591 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014592 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014593 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14594 if (_res == NULL && PyErr_Occurred()) {
14595 p->error_indicator = 1;
14596 D(p->level--);
14597 return NULL;
14598 }
14599 goto done;
14600 }
14601 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014602 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
14604 }
14605 { // args for_if_clauses
14606 if (p->error_indicator) {
14607 D(p->level--);
14608 return NULL;
14609 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014610 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014611 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014612 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014613 if (
14614 (a = args_rule(p)) // args
14615 &&
14616 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14617 )
14618 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014619 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014620 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14621 if (_res == NULL && PyErr_Occurred()) {
14622 p->error_indicator = 1;
14623 D(p->level--);
14624 return NULL;
14625 }
14626 goto done;
14627 }
14628 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014629 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
14631 }
14632 { // args ',' expression for_if_clauses
14633 if (p->error_indicator) {
14634 D(p->level--);
14635 return NULL;
14636 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014637 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014638 Token * _literal;
14639 expr_ty a;
14640 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014641 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014642 if (
14643 (args_var = args_rule(p)) // args
14644 &&
14645 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14646 &&
14647 (a = expression_rule(p)) // expression
14648 &&
14649 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14650 )
14651 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014652 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014653 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14654 if (_res == NULL && PyErr_Occurred()) {
14655 p->error_indicator = 1;
14656 D(p->level--);
14657 return NULL;
14658 }
14659 goto done;
14660 }
14661 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014662 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
14664 }
14665 { // args ',' args
14666 if (p->error_indicator) {
14667 D(p->level--);
14668 return NULL;
14669 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014670 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014671 Token * _literal;
14672 expr_ty a;
14673 expr_ty args_var;
14674 if (
14675 (a = args_rule(p)) // args
14676 &&
14677 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14678 &&
14679 (args_var = args_rule(p)) // args
14680 )
14681 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014682 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014683 _res = _PyPegen_arguments_parsing_error ( p , a );
14684 if (_res == NULL && PyErr_Occurred()) {
14685 p->error_indicator = 1;
14686 D(p->level--);
14687 return NULL;
14688 }
14689 goto done;
14690 }
14691 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014692 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
14694 }
14695 _res = NULL;
14696 done:
14697 D(p->level--);
14698 return _res;
14699}
14700
14701// invalid_kwarg: expression '='
14702static void *
14703invalid_kwarg_rule(Parser *p)
14704{
14705 D(p->level++);
14706 if (p->error_indicator) {
14707 D(p->level--);
14708 return NULL;
14709 }
14710 void * _res = NULL;
14711 int _mark = p->mark;
14712 { // expression '='
14713 if (p->error_indicator) {
14714 D(p->level--);
14715 return NULL;
14716 }
14717 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014718 Token * a;
14719 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014720 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014721 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014722 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014723 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014724 )
14725 {
14726 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
14727 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
14728 if (_res == NULL && PyErr_Occurred()) {
14729 p->error_indicator = 1;
14730 D(p->level--);
14731 return NULL;
14732 }
14733 goto done;
14734 }
14735 p->mark = _mark;
14736 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
14738 }
14739 _res = NULL;
14740 done:
14741 D(p->level--);
14742 return _res;
14743}
14744
14745// invalid_named_expression: expression ':=' expression
14746static void *
14747invalid_named_expression_rule(Parser *p)
14748{
14749 D(p->level++);
14750 if (p->error_indicator) {
14751 D(p->level--);
14752 return NULL;
14753 }
14754 void * _res = NULL;
14755 int _mark = p->mark;
14756 { // expression ':=' expression
14757 if (p->error_indicator) {
14758 D(p->level--);
14759 return NULL;
14760 }
14761 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14762 Token * _literal;
14763 expr_ty a;
14764 expr_ty expression_var;
14765 if (
14766 (a = expression_rule(p)) // expression
14767 &&
14768 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
14769 &&
14770 (expression_var = expression_rule(p)) // expression
14771 )
14772 {
14773 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14774 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
14775 if (_res == NULL && PyErr_Occurred()) {
14776 p->error_indicator = 1;
14777 D(p->level--);
14778 return NULL;
14779 }
14780 goto done;
14781 }
14782 p->mark = _mark;
14783 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
14785 }
14786 _res = NULL;
14787 done:
14788 D(p->level--);
14789 return _res;
14790}
14791
14792// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014793// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014794// | star_named_expression ',' star_named_expressions* ':' expression
14795// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014796// | ((star_targets '='))* star_expressions '='
14797// | ((star_targets '='))* yield_expr '='
14798// | star_expressions augassign (yield_expr | star_expressions)
14799static void *
14800invalid_assignment_rule(Parser *p)
14801{
14802 D(p->level++);
14803 if (p->error_indicator) {
14804 D(p->level--);
14805 return NULL;
14806 }
14807 void * _res = NULL;
14808 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014809 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014810 if (p->error_indicator) {
14811 D(p->level--);
14812 return NULL;
14813 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014814 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014815 Token * _literal;
14816 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014817 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014818 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014819 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014820 &&
14821 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014822 &&
14823 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014824 )
14825 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014826 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14827 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not %s) can be annotated" , _PyPegen_get_expr_name ( a ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014828 if (_res == NULL && PyErr_Occurred()) {
14829 p->error_indicator = 1;
14830 D(p->level--);
14831 return NULL;
14832 }
14833 goto done;
14834 }
14835 p->mark = _mark;
14836 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014838 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014839 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014840 if (p->error_indicator) {
14841 D(p->level--);
14842 return NULL;
14843 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014844 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014845 Token * _literal;
14846 Token * _literal_1;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014847 asdl_seq * _loop0_127_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014848 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014849 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014850 if (
14851 (a = star_named_expression_rule(p)) // star_named_expression
14852 &&
14853 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14854 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014855 (_loop0_127_var = _loop0_127_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014856 &&
14857 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014858 &&
14859 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014860 )
14861 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014862 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014863 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
14864 if (_res == NULL && PyErr_Occurred()) {
14865 p->error_indicator = 1;
14866 D(p->level--);
14867 return NULL;
14868 }
14869 goto done;
14870 }
14871 p->mark = _mark;
14872 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014874 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014875 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014876 if (p->error_indicator) {
14877 D(p->level--);
14878 return NULL;
14879 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014880 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014881 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014882 expr_ty a;
14883 expr_ty expression_var;
14884 if (
14885 (a = expression_rule(p)) // expression
14886 &&
14887 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14888 &&
14889 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014890 )
14891 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014892 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014893 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
14894 if (_res == NULL && PyErr_Occurred()) {
14895 p->error_indicator = 1;
14896 D(p->level--);
14897 return NULL;
14898 }
14899 goto done;
14900 }
14901 p->mark = _mark;
14902 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014904 }
14905 { // ((star_targets '='))* star_expressions '='
14906 if (p->error_indicator) {
14907 D(p->level--);
14908 return NULL;
14909 }
14910 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14911 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014912 asdl_seq * _loop0_128_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014913 expr_ty a;
14914 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014915 (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014916 &&
14917 (a = star_expressions_rule(p)) // star_expressions
14918 &&
14919 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14920 )
14921 {
14922 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
Lysandros Nikolaou6c4e0bd2020-06-21 05:18:01 +030014923 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014924 if (_res == NULL && PyErr_Occurred()) {
14925 p->error_indicator = 1;
14926 D(p->level--);
14927 return NULL;
14928 }
14929 goto done;
14930 }
14931 p->mark = _mark;
14932 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14934 }
14935 { // ((star_targets '='))* yield_expr '='
14936 if (p->error_indicator) {
14937 D(p->level--);
14938 return NULL;
14939 }
14940 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14941 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014942 asdl_seq * _loop0_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014943 expr_ty a;
14944 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014945 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014946 &&
14947 (a = yield_expr_rule(p)) // yield_expr
14948 &&
14949 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14950 )
14951 {
14952 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14953 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14954 if (_res == NULL && PyErr_Occurred()) {
14955 p->error_indicator = 1;
14956 D(p->level--);
14957 return NULL;
14958 }
14959 goto done;
14960 }
14961 p->mark = _mark;
14962 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14964 }
14965 { // star_expressions augassign (yield_expr | star_expressions)
14966 if (p->error_indicator) {
14967 D(p->level--);
14968 return NULL;
14969 }
14970 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014971 void *_tmp_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014972 expr_ty a;
14973 AugOperator* augassign_var;
14974 if (
14975 (a = star_expressions_rule(p)) // star_expressions
14976 &&
14977 (augassign_var = augassign_rule(p)) // augassign
14978 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014979 (_tmp_130_var = _tmp_130_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014980 )
14981 {
14982 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
14983 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
14984 if (_res == NULL && PyErr_Occurred()) {
14985 p->error_indicator = 1;
14986 D(p->level--);
14987 return NULL;
14988 }
14989 goto done;
14990 }
14991 p->mark = _mark;
14992 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
14994 }
14995 _res = NULL;
14996 done:
14997 D(p->level--);
14998 return _res;
14999}
15000
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030015001// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
15002static expr_ty
15003invalid_ann_assign_target_rule(Parser *p)
15004{
15005 D(p->level++);
15006 if (p->error_indicator) {
15007 D(p->level--);
15008 return NULL;
15009 }
15010 expr_ty _res = NULL;
15011 int _mark = p->mark;
15012 { // list
15013 if (p->error_indicator) {
15014 D(p->level--);
15015 return NULL;
15016 }
15017 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
15018 expr_ty list_var;
15019 if (
15020 (list_var = list_rule(p)) // list
15021 )
15022 {
15023 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
15024 _res = list_var;
15025 goto done;
15026 }
15027 p->mark = _mark;
15028 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
15030 }
15031 { // tuple
15032 if (p->error_indicator) {
15033 D(p->level--);
15034 return NULL;
15035 }
15036 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
15037 expr_ty tuple_var;
15038 if (
15039 (tuple_var = tuple_rule(p)) // tuple
15040 )
15041 {
15042 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
15043 _res = tuple_var;
15044 goto done;
15045 }
15046 p->mark = _mark;
15047 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
15049 }
15050 { // '(' invalid_ann_assign_target ')'
15051 if (p->error_indicator) {
15052 D(p->level--);
15053 return NULL;
15054 }
15055 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15056 Token * _literal;
15057 Token * _literal_1;
15058 expr_ty a;
15059 if (
15060 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15061 &&
15062 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
15063 &&
15064 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15065 )
15066 {
15067 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15068 _res = a;
15069 if (_res == NULL && PyErr_Occurred()) {
15070 p->error_indicator = 1;
15071 D(p->level--);
15072 return NULL;
15073 }
15074 goto done;
15075 }
15076 p->mark = _mark;
15077 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15079 }
15080 _res = NULL;
15081 done:
15082 D(p->level--);
15083 return _res;
15084}
15085
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015086// invalid_del_stmt: 'del' star_expressions
15087static void *
15088invalid_del_stmt_rule(Parser *p)
15089{
15090 D(p->level++);
15091 if (p->error_indicator) {
15092 D(p->level--);
15093 return NULL;
15094 }
15095 void * _res = NULL;
15096 int _mark = p->mark;
15097 { // 'del' star_expressions
15098 if (p->error_indicator) {
15099 D(p->level--);
15100 return NULL;
15101 }
15102 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
15103 Token * _keyword;
15104 expr_ty a;
15105 if (
15106 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
15107 &&
15108 (a = star_expressions_rule(p)) // star_expressions
15109 )
15110 {
15111 D(fprintf(stderr, "%*c+ invalid_del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
Lysandros Nikolaou6c4e0bd2020-06-21 05:18:01 +030015112 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015113 if (_res == NULL && PyErr_Occurred()) {
15114 p->error_indicator = 1;
15115 D(p->level--);
15116 return NULL;
15117 }
15118 goto done;
15119 }
15120 p->mark = _mark;
15121 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
15122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
15123 }
15124 _res = NULL;
15125 done:
15126 D(p->level--);
15127 return _res;
15128}
15129
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015130// invalid_block: NEWLINE !INDENT
15131static void *
15132invalid_block_rule(Parser *p)
15133{
15134 D(p->level++);
15135 if (p->error_indicator) {
15136 D(p->level--);
15137 return NULL;
15138 }
15139 void * _res = NULL;
15140 int _mark = p->mark;
15141 { // NEWLINE !INDENT
15142 if (p->error_indicator) {
15143 D(p->level--);
15144 return NULL;
15145 }
15146 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15147 Token * newline_var;
15148 if (
15149 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15150 &&
15151 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
15152 )
15153 {
15154 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15155 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15156 if (_res == NULL && PyErr_Occurred()) {
15157 p->error_indicator = 1;
15158 D(p->level--);
15159 return NULL;
15160 }
15161 goto done;
15162 }
15163 p->mark = _mark;
15164 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
15166 }
15167 _res = NULL;
15168 done:
15169 D(p->level--);
15170 return _res;
15171}
15172
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020015173// Left-recursive
15174// invalid_primary: primary '{'
15175static void *
15176invalid_primary_rule(Parser *p)
15177{
15178 D(p->level++);
15179 if (p->error_indicator) {
15180 D(p->level--);
15181 return NULL;
15182 }
15183 void * _res = NULL;
15184 int _mark = p->mark;
15185 { // primary '{'
15186 if (p->error_indicator) {
15187 D(p->level--);
15188 return NULL;
15189 }
15190 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15191 Token * a;
15192 expr_ty primary_var;
15193 if (
15194 (primary_var = primary_rule(p)) // primary
15195 &&
15196 (a = _PyPegen_expect_token(p, 25)) // token='{'
15197 )
15198 {
15199 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15200 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
15201 if (_res == NULL && PyErr_Occurred()) {
15202 p->error_indicator = 1;
15203 D(p->level--);
15204 return NULL;
15205 }
15206 goto done;
15207 }
15208 p->mark = _mark;
15209 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
15210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
15211 }
15212 _res = NULL;
15213 done:
15214 D(p->level--);
15215 return _res;
15216}
15217
Pablo Galindo835f14f2021-01-31 22:52:56 +000015218// invalid_comprehension:
15219// | ('[' | '(' | '{') starred_expression for_if_clauses
15220// | ('[' | '{') star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015221static void *
15222invalid_comprehension_rule(Parser *p)
15223{
15224 D(p->level++);
15225 if (p->error_indicator) {
15226 D(p->level--);
15227 return NULL;
15228 }
15229 void * _res = NULL;
15230 int _mark = p->mark;
15231 { // ('[' | '(' | '{') starred_expression for_if_clauses
15232 if (p->error_indicator) {
15233 D(p->level--);
15234 return NULL;
15235 }
15236 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015237 void *_tmp_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015238 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015239 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015240 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015241 (_tmp_131_var = _tmp_131_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015242 &&
15243 (a = starred_expression_rule(p)) // starred_expression
15244 &&
15245 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15246 )
15247 {
15248 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15249 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
15250 if (_res == NULL && PyErr_Occurred()) {
15251 p->error_indicator = 1;
15252 D(p->level--);
15253 return NULL;
15254 }
15255 goto done;
15256 }
15257 p->mark = _mark;
15258 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15260 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015261 { // ('[' | '{') star_named_expression ',' star_named_expressions?
15262 if (p->error_indicator) {
15263 D(p->level--);
15264 return NULL;
15265 }
15266 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions?"));
15267 Token * _literal;
15268 void *_opt_var;
15269 UNUSED(_opt_var); // Silence compiler warnings
15270 void *_tmp_132_var;
15271 expr_ty a;
15272 if (
15273 (_tmp_132_var = _tmp_132_rule(p)) // '[' | '{'
15274 &&
15275 (a = star_named_expression_rule(p)) // star_named_expression
15276 &&
15277 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15278 &&
15279 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
15280 )
15281 {
15282 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions?"));
15283 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
15284 if (_res == NULL && PyErr_Occurred()) {
15285 p->error_indicator = 1;
15286 D(p->level--);
15287 return NULL;
15288 }
15289 goto done;
15290 }
15291 p->mark = _mark;
15292 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions?"));
15294 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015295 _res = NULL;
15296 done:
15297 D(p->level--);
15298 return _res;
15299}
15300
15301// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15302static void *
15303invalid_dict_comprehension_rule(Parser *p)
15304{
15305 D(p->level++);
15306 if (p->error_indicator) {
15307 D(p->level--);
15308 return NULL;
15309 }
15310 void * _res = NULL;
15311 int _mark = p->mark;
15312 { // '{' '**' bitwise_or for_if_clauses '}'
15313 if (p->error_indicator) {
15314 D(p->level--);
15315 return NULL;
15316 }
15317 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15318 Token * _literal;
15319 Token * _literal_1;
15320 Token * a;
15321 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015322 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015323 if (
15324 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15325 &&
15326 (a = _PyPegen_expect_token(p, 35)) // token='**'
15327 &&
15328 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15329 &&
15330 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15331 &&
15332 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15333 )
15334 {
15335 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15336 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15337 if (_res == NULL && PyErr_Occurred()) {
15338 p->error_indicator = 1;
15339 D(p->level--);
15340 return NULL;
15341 }
15342 goto done;
15343 }
15344 p->mark = _mark;
15345 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15347 }
15348 _res = NULL;
15349 done:
15350 D(p->level--);
15351 return _res;
15352}
15353
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015354// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015355static void *
15356invalid_parameters_rule(Parser *p)
15357{
15358 D(p->level++);
15359 if (p->error_indicator) {
15360 D(p->level--);
15361 return NULL;
15362 }
15363 void * _res = NULL;
15364 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015365 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015366 if (p->error_indicator) {
15367 D(p->level--);
15368 return NULL;
15369 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015370 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015371 asdl_seq * _loop0_133_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015372 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015373 arg_ty param_no_default_var;
15374 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015375 (_loop0_133_var = _loop0_133_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015376 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015377 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015378 &&
15379 (param_no_default_var = param_no_default_rule(p)) // param_no_default
15380 )
15381 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015382 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015383 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15384 if (_res == NULL && PyErr_Occurred()) {
15385 p->error_indicator = 1;
15386 D(p->level--);
15387 return NULL;
15388 }
15389 goto done;
15390 }
15391 p->mark = _mark;
15392 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
15394 }
15395 _res = NULL;
15396 done:
15397 D(p->level--);
15398 return _res;
15399}
15400
15401// invalid_parameters_helper: slash_with_default | param_with_default+
15402static void *
15403invalid_parameters_helper_rule(Parser *p)
15404{
15405 D(p->level++);
15406 if (p->error_indicator) {
15407 D(p->level--);
15408 return NULL;
15409 }
15410 void * _res = NULL;
15411 int _mark = p->mark;
15412 { // slash_with_default
15413 if (p->error_indicator) {
15414 D(p->level--);
15415 return NULL;
15416 }
15417 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
15418 SlashWithDefault* a;
15419 if (
15420 (a = slash_with_default_rule(p)) // slash_with_default
15421 )
15422 {
15423 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
15424 _res = _PyPegen_singleton_seq ( p , a );
15425 if (_res == NULL && PyErr_Occurred()) {
15426 p->error_indicator = 1;
15427 D(p->level--);
15428 return NULL;
15429 }
15430 goto done;
15431 }
15432 p->mark = _mark;
15433 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
15435 }
15436 { // param_with_default+
15437 if (p->error_indicator) {
15438 D(p->level--);
15439 return NULL;
15440 }
15441 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015442 asdl_seq * _loop1_134_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015443 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015444 (_loop1_134_var = _loop1_134_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015445 )
15446 {
15447 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015448 _res = _loop1_134_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015449 goto done;
15450 }
15451 p->mark = _mark;
15452 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015454 }
15455 _res = NULL;
15456 done:
15457 D(p->level--);
15458 return _res;
15459}
15460
15461// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015462// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015463static void *
15464invalid_lambda_parameters_rule(Parser *p)
15465{
15466 D(p->level++);
15467 if (p->error_indicator) {
15468 D(p->level--);
15469 return NULL;
15470 }
15471 void * _res = NULL;
15472 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015473 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015474 if (p->error_indicator) {
15475 D(p->level--);
15476 return NULL;
15477 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015478 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015479 asdl_seq * _loop0_135_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015480 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015481 arg_ty lambda_param_no_default_var;
15482 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015483 (_loop0_135_var = _loop0_135_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015484 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015485 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015486 &&
15487 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15488 )
15489 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015490 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015491 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15492 if (_res == NULL && PyErr_Occurred()) {
15493 p->error_indicator = 1;
15494 D(p->level--);
15495 return NULL;
15496 }
15497 goto done;
15498 }
15499 p->mark = _mark;
15500 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
15502 }
15503 _res = NULL;
15504 done:
15505 D(p->level--);
15506 return _res;
15507}
15508
15509// invalid_lambda_parameters_helper:
15510// | lambda_slash_with_default
15511// | lambda_param_with_default+
15512static void *
15513invalid_lambda_parameters_helper_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 { // lambda_slash_with_default
15523 if (p->error_indicator) {
15524 D(p->level--);
15525 return NULL;
15526 }
15527 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
15528 SlashWithDefault* a;
15529 if (
15530 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
15531 )
15532 {
15533 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
15534 _res = _PyPegen_singleton_seq ( p , a );
15535 if (_res == NULL && PyErr_Occurred()) {
15536 p->error_indicator = 1;
15537 D(p->level--);
15538 return NULL;
15539 }
15540 goto done;
15541 }
15542 p->mark = _mark;
15543 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
15545 }
15546 { // lambda_param_with_default+
15547 if (p->error_indicator) {
15548 D(p->level--);
15549 return NULL;
15550 }
15551 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015552 asdl_seq * _loop1_136_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015553 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015554 (_loop1_136_var = _loop1_136_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015555 )
15556 {
15557 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015558 _res = _loop1_136_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015559 goto done;
15560 }
15561 p->mark = _mark;
15562 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015564 }
15565 _res = NULL;
15566 done:
15567 D(p->level--);
15568 return _res;
15569}
15570
15571// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
15572static void *
15573invalid_star_etc_rule(Parser *p)
15574{
15575 D(p->level++);
15576 if (p->error_indicator) {
15577 D(p->level--);
15578 return NULL;
15579 }
15580 void * _res = NULL;
15581 int _mark = p->mark;
15582 { // '*' (')' | ',' (')' | '**'))
15583 if (p->error_indicator) {
15584 D(p->level--);
15585 return NULL;
15586 }
15587 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15588 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000015589 void *_tmp_137_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015590 if (
15591 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15592 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000015593 (_tmp_137_var = _tmp_137_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015594 )
15595 {
15596 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15597 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15598 if (_res == NULL && PyErr_Occurred()) {
15599 p->error_indicator = 1;
15600 D(p->level--);
15601 return NULL;
15602 }
15603 goto done;
15604 }
15605 p->mark = _mark;
15606 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15608 }
15609 { // '*' ',' TYPE_COMMENT
15610 if (p->error_indicator) {
15611 D(p->level--);
15612 return NULL;
15613 }
15614 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15615 Token * _literal;
15616 Token * _literal_1;
15617 Token * type_comment_var;
15618 if (
15619 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15620 &&
15621 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15622 &&
15623 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15624 )
15625 {
15626 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15627 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15628 if (_res == NULL && PyErr_Occurred()) {
15629 p->error_indicator = 1;
15630 D(p->level--);
15631 return NULL;
15632 }
15633 goto done;
15634 }
15635 p->mark = _mark;
15636 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15638 }
15639 _res = NULL;
15640 done:
15641 D(p->level--);
15642 return _res;
15643}
15644
15645// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15646static void *
15647invalid_lambda_star_etc_rule(Parser *p)
15648{
15649 D(p->level++);
15650 if (p->error_indicator) {
15651 D(p->level--);
15652 return NULL;
15653 }
15654 void * _res = NULL;
15655 int _mark = p->mark;
15656 { // '*' (':' | ',' (':' | '**'))
15657 if (p->error_indicator) {
15658 D(p->level--);
15659 return NULL;
15660 }
15661 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15662 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000015663 void *_tmp_138_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015664 if (
15665 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15666 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000015667 (_tmp_138_var = _tmp_138_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015668 )
15669 {
15670 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15671 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15672 if (_res == NULL && PyErr_Occurred()) {
15673 p->error_indicator = 1;
15674 D(p->level--);
15675 return NULL;
15676 }
15677 goto done;
15678 }
15679 p->mark = _mark;
15680 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15682 }
15683 _res = NULL;
15684 done:
15685 D(p->level--);
15686 return _res;
15687}
15688
15689// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15690static void *
15691invalid_double_type_comments_rule(Parser *p)
15692{
15693 D(p->level++);
15694 if (p->error_indicator) {
15695 D(p->level--);
15696 return NULL;
15697 }
15698 void * _res = NULL;
15699 int _mark = p->mark;
15700 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15701 if (p->error_indicator) {
15702 D(p->level--);
15703 return NULL;
15704 }
15705 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15706 Token * indent_var;
15707 Token * newline_var;
15708 Token * newline_var_1;
15709 Token * type_comment_var;
15710 Token * type_comment_var_1;
15711 if (
15712 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15713 &&
15714 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15715 &&
15716 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15717 &&
15718 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15719 &&
15720 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
15721 )
15722 {
15723 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"));
15724 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15725 if (_res == NULL && PyErr_Occurred()) {
15726 p->error_indicator = 1;
15727 D(p->level--);
15728 return NULL;
15729 }
15730 goto done;
15731 }
15732 p->mark = _mark;
15733 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15735 }
15736 _res = NULL;
15737 done:
15738 D(p->level--);
15739 return _res;
15740}
15741
Pablo Galindo58fb1562021-02-02 19:54:22 +000015742// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015743static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015744invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015745{
15746 D(p->level++);
15747 if (p->error_indicator) {
15748 D(p->level--);
15749 return NULL;
15750 }
15751 void * _res = NULL;
15752 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000015753 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015754 if (p->error_indicator) {
15755 D(p->level--);
15756 return NULL;
15757 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000015758 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015759 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015760 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015761 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015762 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015763 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015764 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015765 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15766 &&
15767 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000015768 &&
15769 _PyPegen_lookahead(1, _tmp_139_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015770 )
15771 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000015772 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 +030015773 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015774 if (_res == NULL && PyErr_Occurred()) {
15775 p->error_indicator = 1;
15776 D(p->level--);
15777 return NULL;
15778 }
15779 goto done;
15780 }
15781 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015782 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000015783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015784 }
15785 _res = NULL;
15786 done:
15787 D(p->level--);
15788 return _res;
15789}
15790
15791// invalid_for_target: ASYNC? 'for' star_expressions
15792static void *
15793invalid_for_target_rule(Parser *p)
15794{
15795 D(p->level++);
15796 if (p->error_indicator) {
15797 D(p->level--);
15798 return NULL;
15799 }
15800 void * _res = NULL;
15801 int _mark = p->mark;
15802 { // ASYNC? 'for' star_expressions
15803 if (p->error_indicator) {
15804 D(p->level--);
15805 return NULL;
15806 }
15807 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15808 Token * _keyword;
15809 void *_opt_var;
15810 UNUSED(_opt_var); // Silence compiler warnings
15811 expr_ty a;
15812 if (
15813 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15814 &&
15815 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15816 &&
15817 (a = star_expressions_rule(p)) // star_expressions
15818 )
15819 {
15820 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 +030015821 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015822 if (_res == NULL && PyErr_Occurred()) {
15823 p->error_indicator = 1;
15824 D(p->level--);
15825 return NULL;
15826 }
15827 goto done;
15828 }
15829 p->mark = _mark;
15830 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15832 }
15833 _res = NULL;
15834 done:
15835 D(p->level--);
15836 return _res;
15837}
15838
15839// invalid_group: '(' starred_expression ')'
15840static void *
15841invalid_group_rule(Parser *p)
15842{
15843 D(p->level++);
15844 if (p->error_indicator) {
15845 D(p->level--);
15846 return NULL;
15847 }
15848 void * _res = NULL;
15849 int _mark = p->mark;
15850 { // '(' starred_expression ')'
15851 if (p->error_indicator) {
15852 D(p->level--);
15853 return NULL;
15854 }
15855 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15856 Token * _literal;
15857 Token * _literal_1;
15858 expr_ty a;
15859 if (
15860 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15861 &&
15862 (a = starred_expression_rule(p)) // starred_expression
15863 &&
15864 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15865 )
15866 {
15867 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15868 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15869 if (_res == NULL && PyErr_Occurred()) {
15870 p->error_indicator = 1;
15871 D(p->level--);
15872 return NULL;
15873 }
15874 goto done;
15875 }
15876 p->mark = _mark;
15877 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015879 }
15880 _res = NULL;
15881 done:
15882 D(p->level--);
15883 return _res;
15884}
15885
15886// invalid_import_from_targets: import_from_as_names ','
15887static void *
15888invalid_import_from_targets_rule(Parser *p)
15889{
15890 D(p->level++);
15891 if (p->error_indicator) {
15892 D(p->level--);
15893 return NULL;
15894 }
15895 void * _res = NULL;
15896 int _mark = p->mark;
15897 { // import_from_as_names ','
15898 if (p->error_indicator) {
15899 D(p->level--);
15900 return NULL;
15901 }
15902 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15903 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015904 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015905 if (
15906 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15907 &&
15908 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15909 )
15910 {
15911 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15912 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15913 if (_res == NULL && PyErr_Occurred()) {
15914 p->error_indicator = 1;
15915 D(p->level--);
15916 return NULL;
15917 }
15918 goto done;
15919 }
15920 p->mark = _mark;
15921 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
15923 }
15924 _res = NULL;
15925 done:
15926 D(p->level--);
15927 return _res;
15928}
15929
Pablo Galindo58fb1562021-02-02 19:54:22 +000015930// invalid_with_stmt:
15931// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
15932// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
15933static void *
15934invalid_with_stmt_rule(Parser *p)
15935{
15936 D(p->level++);
15937 if (p->error_indicator) {
15938 D(p->level--);
15939 return NULL;
15940 }
15941 void * _res = NULL;
15942 int _mark = p->mark;
15943 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
15944 if (p->error_indicator) {
15945 D(p->level--);
15946 return NULL;
15947 }
15948 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
15949 asdl_seq * _gather_140_var;
15950 Token * _keyword;
15951 Token * _literal;
15952 void *_opt_var;
15953 UNUSED(_opt_var); // Silence compiler warnings
15954 if (
15955 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15956 &&
15957 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
15958 &&
15959 (_gather_140_var = _gather_140_rule(p)) // ','.(expression ['as' star_target])+
15960 &&
15961 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
15962 )
15963 {
15964 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
15965 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_140_var, _literal);
15966 goto done;
15967 }
15968 p->mark = _mark;
15969 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
15970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
15971 }
15972 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
15973 if (p->error_indicator) {
15974 D(p->level--);
15975 return NULL;
15976 }
15977 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
15978 asdl_seq * _gather_142_var;
15979 Token * _keyword;
15980 Token * _literal;
15981 Token * _literal_1;
15982 Token * _literal_2;
15983 void *_opt_var;
15984 UNUSED(_opt_var); // Silence compiler warnings
15985 void *_opt_var_1;
15986 UNUSED(_opt_var_1); // Silence compiler warnings
15987 if (
15988 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15989 &&
15990 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
15991 &&
15992 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15993 &&
15994 (_gather_142_var = _gather_142_rule(p)) // ','.(expressions ['as' star_target])+
15995 &&
15996 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
15997 &&
15998 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15999 &&
16000 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
16001 )
16002 {
16003 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
16004 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_142_var, _opt_var_1, _literal_1, _literal_2);
16005 goto done;
16006 }
16007 p->mark = _mark;
16008 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
16009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
16010 }
16011 _res = NULL;
16012 done:
16013 D(p->level--);
16014 return _res;
16015}
16016
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016017// _loop0_1: NEWLINE
16018static asdl_seq *
16019_loop0_1_rule(Parser *p)
16020{
16021 D(p->level++);
16022 if (p->error_indicator) {
16023 D(p->level--);
16024 return NULL;
16025 }
16026 void *_res = NULL;
16027 int _mark = p->mark;
16028 int _start_mark = p->mark;
16029 void **_children = PyMem_Malloc(sizeof(void *));
16030 if (!_children) {
16031 p->error_indicator = 1;
16032 PyErr_NoMemory();
16033 D(p->level--);
16034 return NULL;
16035 }
16036 ssize_t _children_capacity = 1;
16037 ssize_t _n = 0;
16038 { // NEWLINE
16039 if (p->error_indicator) {
16040 D(p->level--);
16041 return NULL;
16042 }
16043 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
16044 Token * newline_var;
16045 while (
16046 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
16047 )
16048 {
16049 _res = newline_var;
16050 if (_n == _children_capacity) {
16051 _children_capacity *= 2;
16052 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16053 if (!_new_children) {
16054 p->error_indicator = 1;
16055 PyErr_NoMemory();
16056 D(p->level--);
16057 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016058 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016059 _children = _new_children;
16060 }
16061 _children[_n++] = _res;
16062 _mark = p->mark;
16063 }
16064 p->mark = _mark;
16065 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
16066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
16067 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016068 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016069 if (!_seq) {
16070 PyMem_Free(_children);
16071 p->error_indicator = 1;
16072 PyErr_NoMemory();
16073 D(p->level--);
16074 return NULL;
16075 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016076 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016077 PyMem_Free(_children);
16078 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
16079 D(p->level--);
16080 return _seq;
16081}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016082
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016083// _loop0_2: NEWLINE
16084static asdl_seq *
16085_loop0_2_rule(Parser *p)
16086{
16087 D(p->level++);
16088 if (p->error_indicator) {
16089 D(p->level--);
16090 return NULL;
16091 }
16092 void *_res = NULL;
16093 int _mark = p->mark;
16094 int _start_mark = p->mark;
16095 void **_children = PyMem_Malloc(sizeof(void *));
16096 if (!_children) {
16097 p->error_indicator = 1;
16098 PyErr_NoMemory();
16099 D(p->level--);
16100 return NULL;
16101 }
16102 ssize_t _children_capacity = 1;
16103 ssize_t _n = 0;
16104 { // NEWLINE
16105 if (p->error_indicator) {
16106 D(p->level--);
16107 return NULL;
16108 }
16109 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
16110 Token * newline_var;
16111 while (
16112 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
16113 )
16114 {
16115 _res = newline_var;
16116 if (_n == _children_capacity) {
16117 _children_capacity *= 2;
16118 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16119 if (!_new_children) {
16120 p->error_indicator = 1;
16121 PyErr_NoMemory();
16122 D(p->level--);
16123 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016124 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016125 _children = _new_children;
16126 }
16127 _children[_n++] = _res;
16128 _mark = p->mark;
16129 }
16130 p->mark = _mark;
16131 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
16132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
16133 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016134 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016135 if (!_seq) {
16136 PyMem_Free(_children);
16137 p->error_indicator = 1;
16138 PyErr_NoMemory();
16139 D(p->level--);
16140 return NULL;
16141 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016142 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016143 PyMem_Free(_children);
16144 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
16145 D(p->level--);
16146 return _seq;
16147}
16148
16149// _loop0_4: ',' expression
16150static asdl_seq *
16151_loop0_4_rule(Parser *p)
16152{
16153 D(p->level++);
16154 if (p->error_indicator) {
16155 D(p->level--);
16156 return NULL;
16157 }
16158 void *_res = NULL;
16159 int _mark = p->mark;
16160 int _start_mark = p->mark;
16161 void **_children = PyMem_Malloc(sizeof(void *));
16162 if (!_children) {
16163 p->error_indicator = 1;
16164 PyErr_NoMemory();
16165 D(p->level--);
16166 return NULL;
16167 }
16168 ssize_t _children_capacity = 1;
16169 ssize_t _n = 0;
16170 { // ',' expression
16171 if (p->error_indicator) {
16172 D(p->level--);
16173 return NULL;
16174 }
16175 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16176 Token * _literal;
16177 expr_ty elem;
16178 while (
16179 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16180 &&
16181 (elem = expression_rule(p)) // expression
16182 )
16183 {
16184 _res = elem;
16185 if (_res == NULL && PyErr_Occurred()) {
16186 p->error_indicator = 1;
16187 PyMem_Free(_children);
16188 D(p->level--);
16189 return NULL;
16190 }
16191 if (_n == _children_capacity) {
16192 _children_capacity *= 2;
16193 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16194 if (!_new_children) {
16195 p->error_indicator = 1;
16196 PyErr_NoMemory();
16197 D(p->level--);
16198 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016199 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016200 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016201 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016202 _children[_n++] = _res;
16203 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016204 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016205 p->mark = _mark;
16206 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
16207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016208 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016209 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016210 if (!_seq) {
16211 PyMem_Free(_children);
16212 p->error_indicator = 1;
16213 PyErr_NoMemory();
16214 D(p->level--);
16215 return NULL;
16216 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016217 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016218 PyMem_Free(_children);
16219 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
16220 D(p->level--);
16221 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016222}
16223
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016224// _gather_3: expression _loop0_4
16225static asdl_seq *
16226_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016227{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016228 D(p->level++);
16229 if (p->error_indicator) {
16230 D(p->level--);
16231 return NULL;
16232 }
16233 asdl_seq * _res = NULL;
16234 int _mark = p->mark;
16235 { // expression _loop0_4
16236 if (p->error_indicator) {
16237 D(p->level--);
16238 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016239 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016240 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
16241 expr_ty elem;
16242 asdl_seq * seq;
16243 if (
16244 (elem = expression_rule(p)) // expression
16245 &&
16246 (seq = _loop0_4_rule(p)) // _loop0_4
16247 )
16248 {
16249 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
16250 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16251 goto done;
16252 }
16253 p->mark = _mark;
16254 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
16255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016256 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016257 _res = NULL;
16258 done:
16259 D(p->level--);
16260 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016261}
16262
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016263// _loop0_6: ',' expression
16264static asdl_seq *
16265_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016266{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016267 D(p->level++);
16268 if (p->error_indicator) {
16269 D(p->level--);
16270 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016271 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016272 void *_res = NULL;
16273 int _mark = p->mark;
16274 int _start_mark = p->mark;
16275 void **_children = PyMem_Malloc(sizeof(void *));
16276 if (!_children) {
16277 p->error_indicator = 1;
16278 PyErr_NoMemory();
16279 D(p->level--);
16280 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016281 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016282 ssize_t _children_capacity = 1;
16283 ssize_t _n = 0;
16284 { // ',' expression
16285 if (p->error_indicator) {
16286 D(p->level--);
16287 return NULL;
16288 }
16289 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16290 Token * _literal;
16291 expr_ty elem;
16292 while (
16293 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16294 &&
16295 (elem = expression_rule(p)) // expression
16296 )
16297 {
16298 _res = elem;
16299 if (_res == NULL && PyErr_Occurred()) {
16300 p->error_indicator = 1;
16301 PyMem_Free(_children);
16302 D(p->level--);
16303 return NULL;
16304 }
16305 if (_n == _children_capacity) {
16306 _children_capacity *= 2;
16307 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16308 if (!_new_children) {
16309 p->error_indicator = 1;
16310 PyErr_NoMemory();
16311 D(p->level--);
16312 return NULL;
16313 }
16314 _children = _new_children;
16315 }
16316 _children[_n++] = _res;
16317 _mark = p->mark;
16318 }
16319 p->mark = _mark;
16320 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
16321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16322 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016323 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016324 if (!_seq) {
16325 PyMem_Free(_children);
16326 p->error_indicator = 1;
16327 PyErr_NoMemory();
16328 D(p->level--);
16329 return NULL;
16330 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016331 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016332 PyMem_Free(_children);
16333 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
16334 D(p->level--);
16335 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016336}
16337
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016338// _gather_5: expression _loop0_6
16339static asdl_seq *
16340_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016341{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016342 D(p->level++);
16343 if (p->error_indicator) {
16344 D(p->level--);
16345 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016346 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016347 asdl_seq * _res = NULL;
16348 int _mark = p->mark;
16349 { // expression _loop0_6
16350 if (p->error_indicator) {
16351 D(p->level--);
16352 return NULL;
16353 }
16354 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16355 expr_ty elem;
16356 asdl_seq * seq;
16357 if (
16358 (elem = expression_rule(p)) // expression
16359 &&
16360 (seq = _loop0_6_rule(p)) // _loop0_6
16361 )
16362 {
16363 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16364 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16365 goto done;
16366 }
16367 p->mark = _mark;
16368 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
16369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
16370 }
16371 _res = NULL;
16372 done:
16373 D(p->level--);
16374 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016375}
16376
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016377// _loop0_8: ',' expression
16378static asdl_seq *
16379_loop0_8_rule(Parser *p)
16380{
16381 D(p->level++);
16382 if (p->error_indicator) {
16383 D(p->level--);
16384 return NULL;
16385 }
16386 void *_res = NULL;
16387 int _mark = p->mark;
16388 int _start_mark = p->mark;
16389 void **_children = PyMem_Malloc(sizeof(void *));
16390 if (!_children) {
16391 p->error_indicator = 1;
16392 PyErr_NoMemory();
16393 D(p->level--);
16394 return NULL;
16395 }
16396 ssize_t _children_capacity = 1;
16397 ssize_t _n = 0;
16398 { // ',' expression
16399 if (p->error_indicator) {
16400 D(p->level--);
16401 return NULL;
16402 }
16403 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16404 Token * _literal;
16405 expr_ty elem;
16406 while (
16407 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16408 &&
16409 (elem = expression_rule(p)) // expression
16410 )
16411 {
16412 _res = elem;
16413 if (_res == NULL && PyErr_Occurred()) {
16414 p->error_indicator = 1;
16415 PyMem_Free(_children);
16416 D(p->level--);
16417 return NULL;
16418 }
16419 if (_n == _children_capacity) {
16420 _children_capacity *= 2;
16421 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16422 if (!_new_children) {
16423 p->error_indicator = 1;
16424 PyErr_NoMemory();
16425 D(p->level--);
16426 return NULL;
16427 }
16428 _children = _new_children;
16429 }
16430 _children[_n++] = _res;
16431 _mark = p->mark;
16432 }
16433 p->mark = _mark;
16434 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16436 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016437 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016438 if (!_seq) {
16439 PyMem_Free(_children);
16440 p->error_indicator = 1;
16441 PyErr_NoMemory();
16442 D(p->level--);
16443 return NULL;
16444 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016445 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016446 PyMem_Free(_children);
16447 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
16448 D(p->level--);
16449 return _seq;
16450}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016451
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016452// _gather_7: expression _loop0_8
16453static asdl_seq *
16454_gather_7_rule(Parser *p)
16455{
16456 D(p->level++);
16457 if (p->error_indicator) {
16458 D(p->level--);
16459 return NULL;
16460 }
16461 asdl_seq * _res = NULL;
16462 int _mark = p->mark;
16463 { // expression _loop0_8
16464 if (p->error_indicator) {
16465 D(p->level--);
16466 return NULL;
16467 }
16468 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16469 expr_ty elem;
16470 asdl_seq * seq;
16471 if (
16472 (elem = expression_rule(p)) // expression
16473 &&
16474 (seq = _loop0_8_rule(p)) // _loop0_8
16475 )
16476 {
16477 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16478 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16479 goto done;
16480 }
16481 p->mark = _mark;
16482 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
16484 }
16485 _res = NULL;
16486 done:
16487 D(p->level--);
16488 return _res;
16489}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016490
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016491// _loop0_10: ',' expression
16492static asdl_seq *
16493_loop0_10_rule(Parser *p)
16494{
16495 D(p->level++);
16496 if (p->error_indicator) {
16497 D(p->level--);
16498 return NULL;
16499 }
16500 void *_res = NULL;
16501 int _mark = p->mark;
16502 int _start_mark = p->mark;
16503 void **_children = PyMem_Malloc(sizeof(void *));
16504 if (!_children) {
16505 p->error_indicator = 1;
16506 PyErr_NoMemory();
16507 D(p->level--);
16508 return NULL;
16509 }
16510 ssize_t _children_capacity = 1;
16511 ssize_t _n = 0;
16512 { // ',' expression
16513 if (p->error_indicator) {
16514 D(p->level--);
16515 return NULL;
16516 }
16517 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16518 Token * _literal;
16519 expr_ty elem;
16520 while (
16521 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16522 &&
16523 (elem = expression_rule(p)) // expression
16524 )
16525 {
16526 _res = elem;
16527 if (_res == NULL && PyErr_Occurred()) {
16528 p->error_indicator = 1;
16529 PyMem_Free(_children);
16530 D(p->level--);
16531 return NULL;
16532 }
16533 if (_n == _children_capacity) {
16534 _children_capacity *= 2;
16535 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16536 if (!_new_children) {
16537 p->error_indicator = 1;
16538 PyErr_NoMemory();
16539 D(p->level--);
16540 return NULL;
16541 }
16542 _children = _new_children;
16543 }
16544 _children[_n++] = _res;
16545 _mark = p->mark;
16546 }
16547 p->mark = _mark;
16548 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16550 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016551 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016552 if (!_seq) {
16553 PyMem_Free(_children);
16554 p->error_indicator = 1;
16555 PyErr_NoMemory();
16556 D(p->level--);
16557 return NULL;
16558 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016559 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016560 PyMem_Free(_children);
16561 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
16562 D(p->level--);
16563 return _seq;
16564}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016565
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016566// _gather_9: expression _loop0_10
16567static asdl_seq *
16568_gather_9_rule(Parser *p)
16569{
16570 D(p->level++);
16571 if (p->error_indicator) {
16572 D(p->level--);
16573 return NULL;
16574 }
16575 asdl_seq * _res = NULL;
16576 int _mark = p->mark;
16577 { // expression _loop0_10
16578 if (p->error_indicator) {
16579 D(p->level--);
16580 return NULL;
16581 }
16582 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16583 expr_ty elem;
16584 asdl_seq * seq;
16585 if (
16586 (elem = expression_rule(p)) // expression
16587 &&
16588 (seq = _loop0_10_rule(p)) // _loop0_10
16589 )
16590 {
16591 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16592 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16593 goto done;
16594 }
16595 p->mark = _mark;
16596 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
16598 }
16599 _res = NULL;
16600 done:
16601 D(p->level--);
16602 return _res;
16603}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016604
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016605// _loop1_11: statement
16606static asdl_seq *
16607_loop1_11_rule(Parser *p)
16608{
16609 D(p->level++);
16610 if (p->error_indicator) {
16611 D(p->level--);
16612 return NULL;
16613 }
16614 void *_res = NULL;
16615 int _mark = p->mark;
16616 int _start_mark = p->mark;
16617 void **_children = PyMem_Malloc(sizeof(void *));
16618 if (!_children) {
16619 p->error_indicator = 1;
16620 PyErr_NoMemory();
16621 D(p->level--);
16622 return NULL;
16623 }
16624 ssize_t _children_capacity = 1;
16625 ssize_t _n = 0;
16626 { // statement
16627 if (p->error_indicator) {
16628 D(p->level--);
16629 return NULL;
16630 }
16631 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010016632 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016633 while (
16634 (statement_var = statement_rule(p)) // statement
16635 )
16636 {
16637 _res = statement_var;
16638 if (_n == _children_capacity) {
16639 _children_capacity *= 2;
16640 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16641 if (!_new_children) {
16642 p->error_indicator = 1;
16643 PyErr_NoMemory();
16644 D(p->level--);
16645 return NULL;
16646 }
16647 _children = _new_children;
16648 }
16649 _children[_n++] = _res;
16650 _mark = p->mark;
16651 }
16652 p->mark = _mark;
16653 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
16655 }
16656 if (_n == 0 || p->error_indicator) {
16657 PyMem_Free(_children);
16658 D(p->level--);
16659 return NULL;
16660 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016661 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016662 if (!_seq) {
16663 PyMem_Free(_children);
16664 p->error_indicator = 1;
16665 PyErr_NoMemory();
16666 D(p->level--);
16667 return NULL;
16668 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016669 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016670 PyMem_Free(_children);
16671 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
16672 D(p->level--);
16673 return _seq;
16674}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016675
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016676// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016677static asdl_seq *
16678_loop0_13_rule(Parser *p)
16679{
16680 D(p->level++);
16681 if (p->error_indicator) {
16682 D(p->level--);
16683 return NULL;
16684 }
16685 void *_res = NULL;
16686 int _mark = p->mark;
16687 int _start_mark = p->mark;
16688 void **_children = PyMem_Malloc(sizeof(void *));
16689 if (!_children) {
16690 p->error_indicator = 1;
16691 PyErr_NoMemory();
16692 D(p->level--);
16693 return NULL;
16694 }
16695 ssize_t _children_capacity = 1;
16696 ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016697 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016698 if (p->error_indicator) {
16699 D(p->level--);
16700 return NULL;
16701 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016702 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016703 Token * _literal;
16704 stmt_ty elem;
16705 while (
16706 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
16707 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016708 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016709 )
16710 {
16711 _res = elem;
16712 if (_res == NULL && PyErr_Occurred()) {
16713 p->error_indicator = 1;
16714 PyMem_Free(_children);
16715 D(p->level--);
16716 return NULL;
16717 }
16718 if (_n == _children_capacity) {
16719 _children_capacity *= 2;
16720 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16721 if (!_new_children) {
16722 p->error_indicator = 1;
16723 PyErr_NoMemory();
16724 D(p->level--);
16725 return NULL;
16726 }
16727 _children = _new_children;
16728 }
16729 _children[_n++] = _res;
16730 _mark = p->mark;
16731 }
16732 p->mark = _mark;
16733 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016735 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016736 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016737 if (!_seq) {
16738 PyMem_Free(_children);
16739 p->error_indicator = 1;
16740 PyErr_NoMemory();
16741 D(p->level--);
16742 return NULL;
16743 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016744 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016745 PyMem_Free(_children);
16746 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
16747 D(p->level--);
16748 return _seq;
16749}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016750
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016751// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016752static asdl_seq *
16753_gather_12_rule(Parser *p)
16754{
16755 D(p->level++);
16756 if (p->error_indicator) {
16757 D(p->level--);
16758 return NULL;
16759 }
16760 asdl_seq * _res = NULL;
16761 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016762 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016763 if (p->error_indicator) {
16764 D(p->level--);
16765 return NULL;
16766 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016767 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 +010016768 stmt_ty elem;
16769 asdl_seq * seq;
16770 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016771 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016772 &&
16773 (seq = _loop0_13_rule(p)) // _loop0_13
16774 )
16775 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016776 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 +010016777 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16778 goto done;
16779 }
16780 p->mark = _mark;
16781 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016783 }
16784 _res = NULL;
16785 done:
16786 D(p->level--);
16787 return _res;
16788}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016789
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016790// _tmp_14: 'import' | 'from'
16791static void *
16792_tmp_14_rule(Parser *p)
16793{
16794 D(p->level++);
16795 if (p->error_indicator) {
16796 D(p->level--);
16797 return NULL;
16798 }
16799 void * _res = NULL;
16800 int _mark = p->mark;
16801 { // 'import'
16802 if (p->error_indicator) {
16803 D(p->level--);
16804 return NULL;
16805 }
16806 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
16807 Token * _keyword;
16808 if (
16809 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
16810 )
16811 {
16812 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
16813 _res = _keyword;
16814 goto done;
16815 }
16816 p->mark = _mark;
16817 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
16819 }
16820 { // 'from'
16821 if (p->error_indicator) {
16822 D(p->level--);
16823 return NULL;
16824 }
16825 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
16826 Token * _keyword;
16827 if (
16828 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
16829 )
16830 {
16831 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
16832 _res = _keyword;
16833 goto done;
16834 }
16835 p->mark = _mark;
16836 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
16838 }
16839 _res = NULL;
16840 done:
16841 D(p->level--);
16842 return _res;
16843}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016844
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016845// _tmp_15: 'def' | '@' | ASYNC
16846static void *
16847_tmp_15_rule(Parser *p)
16848{
16849 D(p->level++);
16850 if (p->error_indicator) {
16851 D(p->level--);
16852 return NULL;
16853 }
16854 void * _res = NULL;
16855 int _mark = p->mark;
16856 { // 'def'
16857 if (p->error_indicator) {
16858 D(p->level--);
16859 return NULL;
16860 }
16861 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
16862 Token * _keyword;
16863 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016864 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016865 )
16866 {
16867 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
16868 _res = _keyword;
16869 goto done;
16870 }
16871 p->mark = _mark;
16872 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
16874 }
16875 { // '@'
16876 if (p->error_indicator) {
16877 D(p->level--);
16878 return NULL;
16879 }
16880 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16881 Token * _literal;
16882 if (
16883 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16884 )
16885 {
16886 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16887 _res = _literal;
16888 goto done;
16889 }
16890 p->mark = _mark;
16891 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16893 }
16894 { // ASYNC
16895 if (p->error_indicator) {
16896 D(p->level--);
16897 return NULL;
16898 }
16899 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16900 Token * async_var;
16901 if (
16902 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16903 )
16904 {
16905 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16906 _res = async_var;
16907 goto done;
16908 }
16909 p->mark = _mark;
16910 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16912 }
16913 _res = NULL;
16914 done:
16915 D(p->level--);
16916 return _res;
16917}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016918
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016919// _tmp_16: 'class' | '@'
16920static void *
16921_tmp_16_rule(Parser *p)
16922{
16923 D(p->level++);
16924 if (p->error_indicator) {
16925 D(p->level--);
16926 return NULL;
16927 }
16928 void * _res = NULL;
16929 int _mark = p->mark;
16930 { // 'class'
16931 if (p->error_indicator) {
16932 D(p->level--);
16933 return NULL;
16934 }
16935 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
16936 Token * _keyword;
16937 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016938 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016939 )
16940 {
16941 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
16942 _res = _keyword;
16943 goto done;
16944 }
16945 p->mark = _mark;
16946 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
16948 }
16949 { // '@'
16950 if (p->error_indicator) {
16951 D(p->level--);
16952 return NULL;
16953 }
16954 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16955 Token * _literal;
16956 if (
16957 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16958 )
16959 {
16960 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16961 _res = _literal;
16962 goto done;
16963 }
16964 p->mark = _mark;
16965 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16967 }
16968 _res = NULL;
16969 done:
16970 D(p->level--);
16971 return _res;
16972}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016973
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016974// _tmp_17: 'with' | ASYNC
16975static void *
16976_tmp_17_rule(Parser *p)
16977{
16978 D(p->level++);
16979 if (p->error_indicator) {
16980 D(p->level--);
16981 return NULL;
16982 }
16983 void * _res = NULL;
16984 int _mark = p->mark;
16985 { // 'with'
16986 if (p->error_indicator) {
16987 D(p->level--);
16988 return NULL;
16989 }
16990 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
16991 Token * _keyword;
16992 if (
16993 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
16994 )
16995 {
16996 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
16997 _res = _keyword;
16998 goto done;
16999 }
17000 p->mark = _mark;
17001 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
17002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
17003 }
17004 { // ASYNC
17005 if (p->error_indicator) {
17006 D(p->level--);
17007 return NULL;
17008 }
17009 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17010 Token * async_var;
17011 if (
17012 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
17013 )
17014 {
17015 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17016 _res = async_var;
17017 goto done;
17018 }
17019 p->mark = _mark;
17020 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
17021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
17022 }
17023 _res = NULL;
17024 done:
17025 D(p->level--);
17026 return _res;
17027}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000017028
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017029// _tmp_18: 'for' | ASYNC
17030static void *
17031_tmp_18_rule(Parser *p)
17032{
17033 D(p->level++);
17034 if (p->error_indicator) {
17035 D(p->level--);
17036 return NULL;
17037 }
17038 void * _res = NULL;
17039 int _mark = p->mark;
17040 { // 'for'
17041 if (p->error_indicator) {
17042 D(p->level--);
17043 return NULL;
17044 }
17045 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
17046 Token * _keyword;
17047 if (
17048 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
17049 )
17050 {
17051 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
17052 _res = _keyword;
17053 goto done;
17054 }
17055 p->mark = _mark;
17056 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
17057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
17058 }
17059 { // ASYNC
17060 if (p->error_indicator) {
17061 D(p->level--);
17062 return NULL;
17063 }
17064 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17065 Token * async_var;
17066 if (
17067 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
17068 )
17069 {
17070 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17071 _res = async_var;
17072 goto done;
17073 }
17074 p->mark = _mark;
17075 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
17076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
17077 }
17078 _res = NULL;
17079 done:
17080 D(p->level--);
17081 return _res;
17082}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000017083
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017084// _tmp_19: '=' annotated_rhs
17085static void *
17086_tmp_19_rule(Parser *p)
17087{
17088 D(p->level++);
17089 if (p->error_indicator) {
17090 D(p->level--);
17091 return NULL;
17092 }
17093 void * _res = NULL;
17094 int _mark = p->mark;
17095 { // '=' annotated_rhs
17096 if (p->error_indicator) {
17097 D(p->level--);
17098 return NULL;
17099 }
17100 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17101 Token * _literal;
17102 expr_ty d;
17103 if (
17104 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17105 &&
17106 (d = annotated_rhs_rule(p)) // annotated_rhs
17107 )
17108 {
17109 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17110 _res = d;
17111 if (_res == NULL && PyErr_Occurred()) {
17112 p->error_indicator = 1;
17113 D(p->level--);
17114 return NULL;
17115 }
17116 goto done;
17117 }
17118 p->mark = _mark;
17119 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
17120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
17121 }
17122 _res = NULL;
17123 done:
17124 D(p->level--);
17125 return _res;
17126}
17127
17128// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
17129static void *
17130_tmp_20_rule(Parser *p)
17131{
17132 D(p->level++);
17133 if (p->error_indicator) {
17134 D(p->level--);
17135 return NULL;
17136 }
17137 void * _res = NULL;
17138 int _mark = p->mark;
17139 { // '(' single_target ')'
17140 if (p->error_indicator) {
17141 D(p->level--);
17142 return NULL;
17143 }
17144 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17145 Token * _literal;
17146 Token * _literal_1;
17147 expr_ty b;
17148 if (
17149 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17150 &&
17151 (b = single_target_rule(p)) // single_target
17152 &&
17153 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17154 )
17155 {
17156 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17157 _res = b;
17158 if (_res == NULL && PyErr_Occurred()) {
17159 p->error_indicator = 1;
17160 D(p->level--);
17161 return NULL;
17162 }
17163 goto done;
17164 }
17165 p->mark = _mark;
17166 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
17167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
17168 }
17169 { // single_subscript_attribute_target
17170 if (p->error_indicator) {
17171 D(p->level--);
17172 return NULL;
17173 }
17174 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17175 expr_ty single_subscript_attribute_target_var;
17176 if (
17177 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
17178 )
17179 {
17180 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17181 _res = single_subscript_attribute_target_var;
17182 goto done;
17183 }
17184 p->mark = _mark;
17185 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
17186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
17187 }
17188 _res = NULL;
17189 done:
17190 D(p->level--);
17191 return _res;
17192}
17193
17194// _tmp_21: '=' annotated_rhs
17195static void *
17196_tmp_21_rule(Parser *p)
17197{
17198 D(p->level++);
17199 if (p->error_indicator) {
17200 D(p->level--);
17201 return NULL;
17202 }
17203 void * _res = NULL;
17204 int _mark = p->mark;
17205 { // '=' annotated_rhs
17206 if (p->error_indicator) {
17207 D(p->level--);
17208 return NULL;
17209 }
17210 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17211 Token * _literal;
17212 expr_ty d;
17213 if (
17214 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17215 &&
17216 (d = annotated_rhs_rule(p)) // annotated_rhs
17217 )
17218 {
17219 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17220 _res = d;
17221 if (_res == NULL && PyErr_Occurred()) {
17222 p->error_indicator = 1;
17223 D(p->level--);
17224 return NULL;
17225 }
17226 goto done;
17227 }
17228 p->mark = _mark;
17229 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
17230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
17231 }
17232 _res = NULL;
17233 done:
17234 D(p->level--);
17235 return _res;
17236}
17237
17238// _loop1_22: (star_targets '=')
17239static asdl_seq *
17240_loop1_22_rule(Parser *p)
17241{
17242 D(p->level++);
17243 if (p->error_indicator) {
17244 D(p->level--);
17245 return NULL;
17246 }
17247 void *_res = NULL;
17248 int _mark = p->mark;
17249 int _start_mark = p->mark;
17250 void **_children = PyMem_Malloc(sizeof(void *));
17251 if (!_children) {
17252 p->error_indicator = 1;
17253 PyErr_NoMemory();
17254 D(p->level--);
17255 return NULL;
17256 }
17257 ssize_t _children_capacity = 1;
17258 ssize_t _n = 0;
17259 { // (star_targets '=')
17260 if (p->error_indicator) {
17261 D(p->level--);
17262 return NULL;
17263 }
17264 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000017265 void *_tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017266 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000017267 (_tmp_144_var = _tmp_144_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017268 )
17269 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000017270 _res = _tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017271 if (_n == _children_capacity) {
17272 _children_capacity *= 2;
17273 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17274 if (!_new_children) {
17275 p->error_indicator = 1;
17276 PyErr_NoMemory();
17277 D(p->level--);
17278 return NULL;
17279 }
17280 _children = _new_children;
17281 }
17282 _children[_n++] = _res;
17283 _mark = p->mark;
17284 }
17285 p->mark = _mark;
17286 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
17287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
17288 }
17289 if (_n == 0 || p->error_indicator) {
17290 PyMem_Free(_children);
17291 D(p->level--);
17292 return NULL;
17293 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017294 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017295 if (!_seq) {
17296 PyMem_Free(_children);
17297 p->error_indicator = 1;
17298 PyErr_NoMemory();
17299 D(p->level--);
17300 return NULL;
17301 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017302 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017303 PyMem_Free(_children);
17304 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
17305 D(p->level--);
17306 return _seq;
17307}
17308
17309// _tmp_23: yield_expr | star_expressions
17310static void *
17311_tmp_23_rule(Parser *p)
17312{
17313 D(p->level++);
17314 if (p->error_indicator) {
17315 D(p->level--);
17316 return NULL;
17317 }
17318 void * _res = NULL;
17319 int _mark = p->mark;
17320 { // yield_expr
17321 if (p->error_indicator) {
17322 D(p->level--);
17323 return NULL;
17324 }
17325 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17326 expr_ty yield_expr_var;
17327 if (
17328 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17329 )
17330 {
17331 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17332 _res = yield_expr_var;
17333 goto done;
17334 }
17335 p->mark = _mark;
17336 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17338 }
17339 { // star_expressions
17340 if (p->error_indicator) {
17341 D(p->level--);
17342 return NULL;
17343 }
17344 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17345 expr_ty star_expressions_var;
17346 if (
17347 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17348 )
17349 {
17350 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17351 _res = star_expressions_var;
17352 goto done;
17353 }
17354 p->mark = _mark;
17355 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17357 }
17358 _res = NULL;
17359 done:
17360 D(p->level--);
17361 return _res;
17362}
17363
17364// _tmp_24: yield_expr | star_expressions
17365static void *
17366_tmp_24_rule(Parser *p)
17367{
17368 D(p->level++);
17369 if (p->error_indicator) {
17370 D(p->level--);
17371 return NULL;
17372 }
17373 void * _res = NULL;
17374 int _mark = p->mark;
17375 { // yield_expr
17376 if (p->error_indicator) {
17377 D(p->level--);
17378 return NULL;
17379 }
17380 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17381 expr_ty yield_expr_var;
17382 if (
17383 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17384 )
17385 {
17386 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17387 _res = yield_expr_var;
17388 goto done;
17389 }
17390 p->mark = _mark;
17391 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17393 }
17394 { // star_expressions
17395 if (p->error_indicator) {
17396 D(p->level--);
17397 return NULL;
17398 }
17399 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17400 expr_ty star_expressions_var;
17401 if (
17402 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17403 )
17404 {
17405 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17406 _res = star_expressions_var;
17407 goto done;
17408 }
17409 p->mark = _mark;
17410 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17412 }
17413 _res = NULL;
17414 done:
17415 D(p->level--);
17416 return _res;
17417}
17418
17419// _loop0_26: ',' NAME
17420static asdl_seq *
17421_loop0_26_rule(Parser *p)
17422{
17423 D(p->level++);
17424 if (p->error_indicator) {
17425 D(p->level--);
17426 return NULL;
17427 }
17428 void *_res = NULL;
17429 int _mark = p->mark;
17430 int _start_mark = p->mark;
17431 void **_children = PyMem_Malloc(sizeof(void *));
17432 if (!_children) {
17433 p->error_indicator = 1;
17434 PyErr_NoMemory();
17435 D(p->level--);
17436 return NULL;
17437 }
17438 ssize_t _children_capacity = 1;
17439 ssize_t _n = 0;
17440 { // ',' NAME
17441 if (p->error_indicator) {
17442 D(p->level--);
17443 return NULL;
17444 }
17445 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17446 Token * _literal;
17447 expr_ty elem;
17448 while (
17449 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17450 &&
17451 (elem = _PyPegen_name_token(p)) // NAME
17452 )
17453 {
17454 _res = elem;
17455 if (_res == NULL && PyErr_Occurred()) {
17456 p->error_indicator = 1;
17457 PyMem_Free(_children);
17458 D(p->level--);
17459 return NULL;
17460 }
17461 if (_n == _children_capacity) {
17462 _children_capacity *= 2;
17463 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17464 if (!_new_children) {
17465 p->error_indicator = 1;
17466 PyErr_NoMemory();
17467 D(p->level--);
17468 return NULL;
17469 }
17470 _children = _new_children;
17471 }
17472 _children[_n++] = _res;
17473 _mark = p->mark;
17474 }
17475 p->mark = _mark;
17476 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17478 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017479 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017480 if (!_seq) {
17481 PyMem_Free(_children);
17482 p->error_indicator = 1;
17483 PyErr_NoMemory();
17484 D(p->level--);
17485 return NULL;
17486 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017487 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017488 PyMem_Free(_children);
17489 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
17490 D(p->level--);
17491 return _seq;
17492}
17493
17494// _gather_25: NAME _loop0_26
17495static asdl_seq *
17496_gather_25_rule(Parser *p)
17497{
17498 D(p->level++);
17499 if (p->error_indicator) {
17500 D(p->level--);
17501 return NULL;
17502 }
17503 asdl_seq * _res = NULL;
17504 int _mark = p->mark;
17505 { // NAME _loop0_26
17506 if (p->error_indicator) {
17507 D(p->level--);
17508 return NULL;
17509 }
17510 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17511 expr_ty elem;
17512 asdl_seq * seq;
17513 if (
17514 (elem = _PyPegen_name_token(p)) // NAME
17515 &&
17516 (seq = _loop0_26_rule(p)) // _loop0_26
17517 )
17518 {
17519 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17520 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17521 goto done;
17522 }
17523 p->mark = _mark;
17524 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
17526 }
17527 _res = NULL;
17528 done:
17529 D(p->level--);
17530 return _res;
17531}
17532
17533// _loop0_28: ',' NAME
17534static asdl_seq *
17535_loop0_28_rule(Parser *p)
17536{
17537 D(p->level++);
17538 if (p->error_indicator) {
17539 D(p->level--);
17540 return NULL;
17541 }
17542 void *_res = NULL;
17543 int _mark = p->mark;
17544 int _start_mark = p->mark;
17545 void **_children = PyMem_Malloc(sizeof(void *));
17546 if (!_children) {
17547 p->error_indicator = 1;
17548 PyErr_NoMemory();
17549 D(p->level--);
17550 return NULL;
17551 }
17552 ssize_t _children_capacity = 1;
17553 ssize_t _n = 0;
17554 { // ',' NAME
17555 if (p->error_indicator) {
17556 D(p->level--);
17557 return NULL;
17558 }
17559 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17560 Token * _literal;
17561 expr_ty elem;
17562 while (
17563 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17564 &&
17565 (elem = _PyPegen_name_token(p)) // NAME
17566 )
17567 {
17568 _res = elem;
17569 if (_res == NULL && PyErr_Occurred()) {
17570 p->error_indicator = 1;
17571 PyMem_Free(_children);
17572 D(p->level--);
17573 return NULL;
17574 }
17575 if (_n == _children_capacity) {
17576 _children_capacity *= 2;
17577 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17578 if (!_new_children) {
17579 p->error_indicator = 1;
17580 PyErr_NoMemory();
17581 D(p->level--);
17582 return NULL;
17583 }
17584 _children = _new_children;
17585 }
17586 _children[_n++] = _res;
17587 _mark = p->mark;
17588 }
17589 p->mark = _mark;
17590 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17592 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017593 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017594 if (!_seq) {
17595 PyMem_Free(_children);
17596 p->error_indicator = 1;
17597 PyErr_NoMemory();
17598 D(p->level--);
17599 return NULL;
17600 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017601 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017602 PyMem_Free(_children);
17603 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
17604 D(p->level--);
17605 return _seq;
17606}
17607
17608// _gather_27: NAME _loop0_28
17609static asdl_seq *
17610_gather_27_rule(Parser *p)
17611{
17612 D(p->level++);
17613 if (p->error_indicator) {
17614 D(p->level--);
17615 return NULL;
17616 }
17617 asdl_seq * _res = NULL;
17618 int _mark = p->mark;
17619 { // NAME _loop0_28
17620 if (p->error_indicator) {
17621 D(p->level--);
17622 return NULL;
17623 }
17624 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17625 expr_ty elem;
17626 asdl_seq * seq;
17627 if (
17628 (elem = _PyPegen_name_token(p)) // NAME
17629 &&
17630 (seq = _loop0_28_rule(p)) // _loop0_28
17631 )
17632 {
17633 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17634 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17635 goto done;
17636 }
17637 p->mark = _mark;
17638 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
17640 }
17641 _res = NULL;
17642 done:
17643 D(p->level--);
17644 return _res;
17645}
17646
17647// _tmp_29: ',' expression
17648static void *
17649_tmp_29_rule(Parser *p)
17650{
17651 D(p->level++);
17652 if (p->error_indicator) {
17653 D(p->level--);
17654 return NULL;
17655 }
17656 void * _res = NULL;
17657 int _mark = p->mark;
17658 { // ',' expression
17659 if (p->error_indicator) {
17660 D(p->level--);
17661 return NULL;
17662 }
17663 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
17664 Token * _literal;
17665 expr_ty z;
17666 if (
17667 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17668 &&
17669 (z = expression_rule(p)) // expression
17670 )
17671 {
17672 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
17673 _res = z;
17674 if (_res == NULL && PyErr_Occurred()) {
17675 p->error_indicator = 1;
17676 D(p->level--);
17677 return NULL;
17678 }
17679 goto done;
17680 }
17681 p->mark = _mark;
17682 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
17684 }
17685 _res = NULL;
17686 done:
17687 D(p->level--);
17688 return _res;
17689}
17690
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017691// _tmp_30: ';' | NEWLINE
17692static void *
17693_tmp_30_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 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017700 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017701 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017702 { // ';'
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> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17708 Token * _literal;
17709 if (
17710 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017711 )
17712 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017713 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17714 _res = _literal;
17715 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017716 }
17717 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017718 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017720 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017721 { // NEWLINE
17722 if (p->error_indicator) {
17723 D(p->level--);
17724 return NULL;
17725 }
17726 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17727 Token * newline_var;
17728 if (
17729 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17730 )
17731 {
17732 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17733 _res = newline_var;
17734 goto done;
17735 }
17736 p->mark = _mark;
17737 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017739 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017740 _res = NULL;
17741 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017742 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017743 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017744}
17745
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017746// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017747static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017748_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017749{
17750 D(p->level++);
17751 if (p->error_indicator) {
17752 D(p->level--);
17753 return NULL;
17754 }
17755 void *_res = NULL;
17756 int _mark = p->mark;
17757 int _start_mark = p->mark;
17758 void **_children = PyMem_Malloc(sizeof(void *));
17759 if (!_children) {
17760 p->error_indicator = 1;
17761 PyErr_NoMemory();
17762 D(p->level--);
17763 return NULL;
17764 }
17765 ssize_t _children_capacity = 1;
17766 ssize_t _n = 0;
17767 { // ('.' | '...')
17768 if (p->error_indicator) {
17769 D(p->level--);
17770 return NULL;
17771 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017772 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000017773 void *_tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017774 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000017775 (_tmp_145_var = _tmp_145_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017776 )
17777 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000017778 _res = _tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017779 if (_n == _children_capacity) {
17780 _children_capacity *= 2;
17781 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17782 if (!_new_children) {
17783 p->error_indicator = 1;
17784 PyErr_NoMemory();
17785 D(p->level--);
17786 return NULL;
17787 }
17788 _children = _new_children;
17789 }
17790 _children[_n++] = _res;
17791 _mark = p->mark;
17792 }
17793 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017794 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17796 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017797 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017798 if (!_seq) {
17799 PyMem_Free(_children);
17800 p->error_indicator = 1;
17801 PyErr_NoMemory();
17802 D(p->level--);
17803 return NULL;
17804 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017805 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017806 PyMem_Free(_children);
17807 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17808 D(p->level--);
17809 return _seq;
17810}
17811
17812// _loop1_32: ('.' | '...')
17813static asdl_seq *
17814_loop1_32_rule(Parser *p)
17815{
17816 D(p->level++);
17817 if (p->error_indicator) {
17818 D(p->level--);
17819 return NULL;
17820 }
17821 void *_res = NULL;
17822 int _mark = p->mark;
17823 int _start_mark = p->mark;
17824 void **_children = PyMem_Malloc(sizeof(void *));
17825 if (!_children) {
17826 p->error_indicator = 1;
17827 PyErr_NoMemory();
17828 D(p->level--);
17829 return NULL;
17830 }
17831 ssize_t _children_capacity = 1;
17832 ssize_t _n = 0;
17833 { // ('.' | '...')
17834 if (p->error_indicator) {
17835 D(p->level--);
17836 return NULL;
17837 }
17838 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000017839 void *_tmp_146_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017840 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000017841 (_tmp_146_var = _tmp_146_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017842 )
17843 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000017844 _res = _tmp_146_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017845 if (_n == _children_capacity) {
17846 _children_capacity *= 2;
17847 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17848 if (!_new_children) {
17849 p->error_indicator = 1;
17850 PyErr_NoMemory();
17851 D(p->level--);
17852 return NULL;
17853 }
17854 _children = _new_children;
17855 }
17856 _children[_n++] = _res;
17857 _mark = p->mark;
17858 }
17859 p->mark = _mark;
17860 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17862 }
17863 if (_n == 0 || p->error_indicator) {
17864 PyMem_Free(_children);
17865 D(p->level--);
17866 return NULL;
17867 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017868 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017869 if (!_seq) {
17870 PyMem_Free(_children);
17871 p->error_indicator = 1;
17872 PyErr_NoMemory();
17873 D(p->level--);
17874 return NULL;
17875 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017876 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017877 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017878 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017879 D(p->level--);
17880 return _seq;
17881}
17882
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017883// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017884static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017885_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017886{
17887 D(p->level++);
17888 if (p->error_indicator) {
17889 D(p->level--);
17890 return NULL;
17891 }
17892 void *_res = NULL;
17893 int _mark = p->mark;
17894 int _start_mark = p->mark;
17895 void **_children = PyMem_Malloc(sizeof(void *));
17896 if (!_children) {
17897 p->error_indicator = 1;
17898 PyErr_NoMemory();
17899 D(p->level--);
17900 return NULL;
17901 }
17902 ssize_t _children_capacity = 1;
17903 ssize_t _n = 0;
17904 { // ',' import_from_as_name
17905 if (p->error_indicator) {
17906 D(p->level--);
17907 return NULL;
17908 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017909 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 +010017910 Token * _literal;
17911 alias_ty elem;
17912 while (
17913 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17914 &&
17915 (elem = import_from_as_name_rule(p)) // import_from_as_name
17916 )
17917 {
17918 _res = elem;
17919 if (_res == NULL && PyErr_Occurred()) {
17920 p->error_indicator = 1;
17921 PyMem_Free(_children);
17922 D(p->level--);
17923 return NULL;
17924 }
17925 if (_n == _children_capacity) {
17926 _children_capacity *= 2;
17927 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17928 if (!_new_children) {
17929 p->error_indicator = 1;
17930 PyErr_NoMemory();
17931 D(p->level--);
17932 return NULL;
17933 }
17934 _children = _new_children;
17935 }
17936 _children[_n++] = _res;
17937 _mark = p->mark;
17938 }
17939 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017940 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
17942 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017943 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017944 if (!_seq) {
17945 PyMem_Free(_children);
17946 p->error_indicator = 1;
17947 PyErr_NoMemory();
17948 D(p->level--);
17949 return NULL;
17950 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017951 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017952 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017953 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017954 D(p->level--);
17955 return _seq;
17956}
17957
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017958// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017959static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017960_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017961{
17962 D(p->level++);
17963 if (p->error_indicator) {
17964 D(p->level--);
17965 return NULL;
17966 }
17967 asdl_seq * _res = NULL;
17968 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017969 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017970 if (p->error_indicator) {
17971 D(p->level--);
17972 return NULL;
17973 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017974 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 +010017975 alias_ty elem;
17976 asdl_seq * seq;
17977 if (
17978 (elem = import_from_as_name_rule(p)) // import_from_as_name
17979 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017980 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017981 )
17982 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017983 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 +010017984 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17985 goto done;
17986 }
17987 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017988 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017990 }
17991 _res = NULL;
17992 done:
17993 D(p->level--);
17994 return _res;
17995}
17996
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017997// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017998static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017999_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018000{
18001 D(p->level++);
18002 if (p->error_indicator) {
18003 D(p->level--);
18004 return NULL;
18005 }
18006 void * _res = NULL;
18007 int _mark = p->mark;
18008 { // 'as' NAME
18009 if (p->error_indicator) {
18010 D(p->level--);
18011 return NULL;
18012 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018013 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018014 Token * _keyword;
18015 expr_ty z;
18016 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018017 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018018 &&
18019 (z = _PyPegen_name_token(p)) // NAME
18020 )
18021 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018022 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 +010018023 _res = z;
18024 if (_res == NULL && PyErr_Occurred()) {
18025 p->error_indicator = 1;
18026 D(p->level--);
18027 return NULL;
18028 }
18029 goto done;
18030 }
18031 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018032 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18034 }
18035 _res = NULL;
18036 done:
18037 D(p->level--);
18038 return _res;
18039}
18040
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018041// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018042static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018043_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018044{
18045 D(p->level++);
18046 if (p->error_indicator) {
18047 D(p->level--);
18048 return NULL;
18049 }
18050 void *_res = NULL;
18051 int _mark = p->mark;
18052 int _start_mark = p->mark;
18053 void **_children = PyMem_Malloc(sizeof(void *));
18054 if (!_children) {
18055 p->error_indicator = 1;
18056 PyErr_NoMemory();
18057 D(p->level--);
18058 return NULL;
18059 }
18060 ssize_t _children_capacity = 1;
18061 ssize_t _n = 0;
18062 { // ',' dotted_as_name
18063 if (p->error_indicator) {
18064 D(p->level--);
18065 return NULL;
18066 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018067 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 +010018068 Token * _literal;
18069 alias_ty elem;
18070 while (
18071 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18072 &&
18073 (elem = dotted_as_name_rule(p)) // dotted_as_name
18074 )
18075 {
18076 _res = elem;
18077 if (_res == NULL && PyErr_Occurred()) {
18078 p->error_indicator = 1;
18079 PyMem_Free(_children);
18080 D(p->level--);
18081 return NULL;
18082 }
18083 if (_n == _children_capacity) {
18084 _children_capacity *= 2;
18085 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18086 if (!_new_children) {
18087 p->error_indicator = 1;
18088 PyErr_NoMemory();
18089 D(p->level--);
18090 return NULL;
18091 }
18092 _children = _new_children;
18093 }
18094 _children[_n++] = _res;
18095 _mark = p->mark;
18096 }
18097 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018098 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
18100 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018101 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018102 if (!_seq) {
18103 PyMem_Free(_children);
18104 p->error_indicator = 1;
18105 PyErr_NoMemory();
18106 D(p->level--);
18107 return NULL;
18108 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018109 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018110 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018111 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018112 D(p->level--);
18113 return _seq;
18114}
18115
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018116// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018117static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018118_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018119{
18120 D(p->level++);
18121 if (p->error_indicator) {
18122 D(p->level--);
18123 return NULL;
18124 }
18125 asdl_seq * _res = NULL;
18126 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018127 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018128 if (p->error_indicator) {
18129 D(p->level--);
18130 return NULL;
18131 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018132 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 +010018133 alias_ty elem;
18134 asdl_seq * seq;
18135 if (
18136 (elem = dotted_as_name_rule(p)) // dotted_as_name
18137 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018138 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018139 )
18140 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018141 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 +010018142 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18143 goto done;
18144 }
18145 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018146 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
18147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018148 }
18149 _res = NULL;
18150 done:
18151 D(p->level--);
18152 return _res;
18153}
18154
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018155// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018156static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018157_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018158{
18159 D(p->level++);
18160 if (p->error_indicator) {
18161 D(p->level--);
18162 return NULL;
18163 }
18164 void * _res = NULL;
18165 int _mark = p->mark;
18166 { // 'as' NAME
18167 if (p->error_indicator) {
18168 D(p->level--);
18169 return NULL;
18170 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018171 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018172 Token * _keyword;
18173 expr_ty z;
18174 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018175 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018176 &&
18177 (z = _PyPegen_name_token(p)) // NAME
18178 )
18179 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018180 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 +010018181 _res = z;
18182 if (_res == NULL && PyErr_Occurred()) {
18183 p->error_indicator = 1;
18184 D(p->level--);
18185 return NULL;
18186 }
18187 goto done;
18188 }
18189 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018190 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18192 }
18193 _res = NULL;
18194 done:
18195 D(p->level--);
18196 return _res;
18197}
18198
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018199// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018200static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018201_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018202{
18203 D(p->level++);
18204 if (p->error_indicator) {
18205 D(p->level--);
18206 return NULL;
18207 }
18208 void *_res = NULL;
18209 int _mark = p->mark;
18210 int _start_mark = p->mark;
18211 void **_children = PyMem_Malloc(sizeof(void *));
18212 if (!_children) {
18213 p->error_indicator = 1;
18214 PyErr_NoMemory();
18215 D(p->level--);
18216 return NULL;
18217 }
18218 ssize_t _children_capacity = 1;
18219 ssize_t _n = 0;
18220 { // ',' with_item
18221 if (p->error_indicator) {
18222 D(p->level--);
18223 return NULL;
18224 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018225 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018226 Token * _literal;
18227 withitem_ty elem;
18228 while (
18229 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18230 &&
18231 (elem = with_item_rule(p)) // with_item
18232 )
18233 {
18234 _res = elem;
18235 if (_res == NULL && PyErr_Occurred()) {
18236 p->error_indicator = 1;
18237 PyMem_Free(_children);
18238 D(p->level--);
18239 return NULL;
18240 }
18241 if (_n == _children_capacity) {
18242 _children_capacity *= 2;
18243 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18244 if (!_new_children) {
18245 p->error_indicator = 1;
18246 PyErr_NoMemory();
18247 D(p->level--);
18248 return NULL;
18249 }
18250 _children = _new_children;
18251 }
18252 _children[_n++] = _res;
18253 _mark = p->mark;
18254 }
18255 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018256 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18258 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018259 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018260 if (!_seq) {
18261 PyMem_Free(_children);
18262 p->error_indicator = 1;
18263 PyErr_NoMemory();
18264 D(p->level--);
18265 return NULL;
18266 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018267 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018268 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018269 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018270 D(p->level--);
18271 return _seq;
18272}
18273
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018274// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018275static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018276_gather_39_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 asdl_seq * _res = NULL;
18284 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018285 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018286 if (p->error_indicator) {
18287 D(p->level--);
18288 return NULL;
18289 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018290 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 +010018291 withitem_ty elem;
18292 asdl_seq * seq;
18293 if (
18294 (elem = with_item_rule(p)) // with_item
18295 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018296 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018297 )
18298 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018299 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 +010018300 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18301 goto done;
18302 }
18303 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018304 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
18305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018306 }
18307 _res = NULL;
18308 done:
18309 D(p->level--);
18310 return _res;
18311}
18312
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018313// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018314static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018315_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018316{
18317 D(p->level++);
18318 if (p->error_indicator) {
18319 D(p->level--);
18320 return NULL;
18321 }
18322 void *_res = NULL;
18323 int _mark = p->mark;
18324 int _start_mark = p->mark;
18325 void **_children = PyMem_Malloc(sizeof(void *));
18326 if (!_children) {
18327 p->error_indicator = 1;
18328 PyErr_NoMemory();
18329 D(p->level--);
18330 return NULL;
18331 }
18332 ssize_t _children_capacity = 1;
18333 ssize_t _n = 0;
18334 { // ',' with_item
18335 if (p->error_indicator) {
18336 D(p->level--);
18337 return NULL;
18338 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018339 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018340 Token * _literal;
18341 withitem_ty elem;
18342 while (
18343 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18344 &&
18345 (elem = with_item_rule(p)) // with_item
18346 )
18347 {
18348 _res = elem;
18349 if (_res == NULL && PyErr_Occurred()) {
18350 p->error_indicator = 1;
18351 PyMem_Free(_children);
18352 D(p->level--);
18353 return NULL;
18354 }
18355 if (_n == _children_capacity) {
18356 _children_capacity *= 2;
18357 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18358 if (!_new_children) {
18359 p->error_indicator = 1;
18360 PyErr_NoMemory();
18361 D(p->level--);
18362 return NULL;
18363 }
18364 _children = _new_children;
18365 }
18366 _children[_n++] = _res;
18367 _mark = p->mark;
18368 }
18369 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018370 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18372 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018373 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018374 if (!_seq) {
18375 PyMem_Free(_children);
18376 p->error_indicator = 1;
18377 PyErr_NoMemory();
18378 D(p->level--);
18379 return NULL;
18380 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018381 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018382 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018383 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018384 D(p->level--);
18385 return _seq;
18386}
18387
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018388// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018389static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018390_gather_41_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 asdl_seq * _res = NULL;
18398 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018399 { // with_item _loop0_42
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> _gather_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018405 withitem_ty elem;
18406 asdl_seq * seq;
18407 if (
18408 (elem = with_item_rule(p)) // with_item
18409 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018410 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018411 )
18412 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018413 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 +010018414 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18415 goto done;
18416 }
18417 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018418 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018420 }
18421 _res = NULL;
18422 done:
18423 D(p->level--);
18424 return _res;
18425}
18426
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018427// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018428static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018429_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018430{
18431 D(p->level++);
18432 if (p->error_indicator) {
18433 D(p->level--);
18434 return NULL;
18435 }
18436 void *_res = NULL;
18437 int _mark = p->mark;
18438 int _start_mark = p->mark;
18439 void **_children = PyMem_Malloc(sizeof(void *));
18440 if (!_children) {
18441 p->error_indicator = 1;
18442 PyErr_NoMemory();
18443 D(p->level--);
18444 return NULL;
18445 }
18446 ssize_t _children_capacity = 1;
18447 ssize_t _n = 0;
18448 { // ',' with_item
18449 if (p->error_indicator) {
18450 D(p->level--);
18451 return NULL;
18452 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018453 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018454 Token * _literal;
18455 withitem_ty elem;
18456 while (
18457 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18458 &&
18459 (elem = with_item_rule(p)) // with_item
18460 )
18461 {
18462 _res = elem;
18463 if (_res == NULL && PyErr_Occurred()) {
18464 p->error_indicator = 1;
18465 PyMem_Free(_children);
18466 D(p->level--);
18467 return NULL;
18468 }
18469 if (_n == _children_capacity) {
18470 _children_capacity *= 2;
18471 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18472 if (!_new_children) {
18473 p->error_indicator = 1;
18474 PyErr_NoMemory();
18475 D(p->level--);
18476 return NULL;
18477 }
18478 _children = _new_children;
18479 }
18480 _children[_n++] = _res;
18481 _mark = p->mark;
18482 }
18483 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018484 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18486 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018487 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018488 if (!_seq) {
18489 PyMem_Free(_children);
18490 p->error_indicator = 1;
18491 PyErr_NoMemory();
18492 D(p->level--);
18493 return NULL;
18494 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018495 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018496 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018497 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018498 D(p->level--);
18499 return _seq;
18500}
18501
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018502// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018503static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018504_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018505{
18506 D(p->level++);
18507 if (p->error_indicator) {
18508 D(p->level--);
18509 return NULL;
18510 }
18511 asdl_seq * _res = NULL;
18512 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018513 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018514 if (p->error_indicator) {
18515 D(p->level--);
18516 return NULL;
18517 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018518 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 +010018519 withitem_ty elem;
18520 asdl_seq * seq;
18521 if (
18522 (elem = with_item_rule(p)) // with_item
18523 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018524 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018525 )
18526 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018527 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 +010018528 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18529 goto done;
18530 }
18531 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018532 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018534 }
18535 _res = NULL;
18536 done:
18537 D(p->level--);
18538 return _res;
18539}
18540
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018541// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018542static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018543_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018544{
18545 D(p->level++);
18546 if (p->error_indicator) {
18547 D(p->level--);
18548 return NULL;
18549 }
18550 void *_res = NULL;
18551 int _mark = p->mark;
18552 int _start_mark = p->mark;
18553 void **_children = PyMem_Malloc(sizeof(void *));
18554 if (!_children) {
18555 p->error_indicator = 1;
18556 PyErr_NoMemory();
18557 D(p->level--);
18558 return NULL;
18559 }
18560 ssize_t _children_capacity = 1;
18561 ssize_t _n = 0;
18562 { // ',' with_item
18563 if (p->error_indicator) {
18564 D(p->level--);
18565 return NULL;
18566 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018567 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018568 Token * _literal;
18569 withitem_ty elem;
18570 while (
18571 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18572 &&
18573 (elem = with_item_rule(p)) // with_item
18574 )
18575 {
18576 _res = elem;
18577 if (_res == NULL && PyErr_Occurred()) {
18578 p->error_indicator = 1;
18579 PyMem_Free(_children);
18580 D(p->level--);
18581 return NULL;
18582 }
18583 if (_n == _children_capacity) {
18584 _children_capacity *= 2;
18585 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18586 if (!_new_children) {
18587 p->error_indicator = 1;
18588 PyErr_NoMemory();
18589 D(p->level--);
18590 return NULL;
18591 }
18592 _children = _new_children;
18593 }
18594 _children[_n++] = _res;
18595 _mark = p->mark;
18596 }
18597 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018598 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18600 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018601 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018602 if (!_seq) {
18603 PyMem_Free(_children);
18604 p->error_indicator = 1;
18605 PyErr_NoMemory();
18606 D(p->level--);
18607 return NULL;
18608 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018609 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018610 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018611 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018612 D(p->level--);
18613 return _seq;
18614}
18615
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018616// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018617static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018618_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018619{
18620 D(p->level++);
18621 if (p->error_indicator) {
18622 D(p->level--);
18623 return NULL;
18624 }
18625 asdl_seq * _res = NULL;
18626 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018627 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018628 if (p->error_indicator) {
18629 D(p->level--);
18630 return NULL;
18631 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018632 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 +010018633 withitem_ty elem;
18634 asdl_seq * seq;
18635 if (
18636 (elem = with_item_rule(p)) // with_item
18637 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018638 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018639 )
18640 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018641 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 +010018642 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18643 goto done;
18644 }
18645 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018646 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018648 }
18649 _res = NULL;
18650 done:
18651 D(p->level--);
18652 return _res;
18653}
18654
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018655// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018656static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018657_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018658{
18659 D(p->level++);
18660 if (p->error_indicator) {
18661 D(p->level--);
18662 return NULL;
18663 }
18664 void * _res = NULL;
18665 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018666 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018667 if (p->error_indicator) {
18668 D(p->level--);
18669 return NULL;
18670 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018671 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18672 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018673 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018674 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018675 )
18676 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018677 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18678 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018679 goto done;
18680 }
18681 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018682 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18684 }
18685 { // ')'
18686 if (p->error_indicator) {
18687 D(p->level--);
18688 return NULL;
18689 }
18690 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18691 Token * _literal;
18692 if (
18693 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18694 )
18695 {
18696 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18697 _res = _literal;
18698 goto done;
18699 }
18700 p->mark = _mark;
18701 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18703 }
18704 { // ':'
18705 if (p->error_indicator) {
18706 D(p->level--);
18707 return NULL;
18708 }
18709 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18710 Token * _literal;
18711 if (
18712 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18713 )
18714 {
18715 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18716 _res = _literal;
18717 goto done;
18718 }
18719 p->mark = _mark;
18720 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018722 }
18723 _res = NULL;
18724 done:
18725 D(p->level--);
18726 return _res;
18727}
18728
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018729// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018730static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018731_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018732{
18733 D(p->level++);
18734 if (p->error_indicator) {
18735 D(p->level--);
18736 return NULL;
18737 }
18738 void *_res = NULL;
18739 int _mark = p->mark;
18740 int _start_mark = p->mark;
18741 void **_children = PyMem_Malloc(sizeof(void *));
18742 if (!_children) {
18743 p->error_indicator = 1;
18744 PyErr_NoMemory();
18745 D(p->level--);
18746 return NULL;
18747 }
18748 ssize_t _children_capacity = 1;
18749 ssize_t _n = 0;
18750 { // except_block
18751 if (p->error_indicator) {
18752 D(p->level--);
18753 return NULL;
18754 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018755 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018756 excepthandler_ty except_block_var;
18757 while (
18758 (except_block_var = except_block_rule(p)) // except_block
18759 )
18760 {
18761 _res = except_block_var;
18762 if (_n == _children_capacity) {
18763 _children_capacity *= 2;
18764 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18765 if (!_new_children) {
18766 p->error_indicator = 1;
18767 PyErr_NoMemory();
18768 D(p->level--);
18769 return NULL;
18770 }
18771 _children = _new_children;
18772 }
18773 _children[_n++] = _res;
18774 _mark = p->mark;
18775 }
18776 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018777 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
18779 }
18780 if (_n == 0 || p->error_indicator) {
18781 PyMem_Free(_children);
18782 D(p->level--);
18783 return NULL;
18784 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018785 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018786 if (!_seq) {
18787 PyMem_Free(_children);
18788 p->error_indicator = 1;
18789 PyErr_NoMemory();
18790 D(p->level--);
18791 return NULL;
18792 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018793 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018794 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018795 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018796 D(p->level--);
18797 return _seq;
18798}
18799
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018800// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018801static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018802_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018803{
18804 D(p->level++);
18805 if (p->error_indicator) {
18806 D(p->level--);
18807 return NULL;
18808 }
18809 void * _res = NULL;
18810 int _mark = p->mark;
18811 { // 'as' NAME
18812 if (p->error_indicator) {
18813 D(p->level--);
18814 return NULL;
18815 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018816 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018817 Token * _keyword;
18818 expr_ty z;
18819 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018820 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018821 &&
18822 (z = _PyPegen_name_token(p)) // NAME
18823 )
18824 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018825 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 +010018826 _res = z;
18827 if (_res == NULL && PyErr_Occurred()) {
18828 p->error_indicator = 1;
18829 D(p->level--);
18830 return NULL;
18831 }
18832 goto done;
18833 }
18834 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018835 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018836 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18837 }
18838 _res = NULL;
18839 done:
18840 D(p->level--);
18841 return _res;
18842}
18843
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018844// _tmp_50: 'from' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018845static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018846_tmp_50_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018847{
18848 D(p->level++);
18849 if (p->error_indicator) {
18850 D(p->level--);
18851 return NULL;
18852 }
18853 void * _res = NULL;
18854 int _mark = p->mark;
18855 { // 'from' expression
18856 if (p->error_indicator) {
18857 D(p->level--);
18858 return NULL;
18859 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018860 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018861 Token * _keyword;
18862 expr_ty z;
18863 if (
18864 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
18865 &&
18866 (z = expression_rule(p)) // expression
18867 )
18868 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018869 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 +010018870 _res = z;
18871 if (_res == NULL && PyErr_Occurred()) {
18872 p->error_indicator = 1;
18873 D(p->level--);
18874 return NULL;
18875 }
18876 goto done;
18877 }
18878 p->mark = _mark;
18879 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018881 }
18882 _res = NULL;
18883 done:
18884 D(p->level--);
18885 return _res;
18886}
18887
18888// _tmp_51: '->' expression
18889static void *
18890_tmp_51_rule(Parser *p)
18891{
18892 D(p->level++);
18893 if (p->error_indicator) {
18894 D(p->level--);
18895 return NULL;
18896 }
18897 void * _res = NULL;
18898 int _mark = p->mark;
18899 { // '->' expression
18900 if (p->error_indicator) {
18901 D(p->level--);
18902 return NULL;
18903 }
18904 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18905 Token * _literal;
18906 expr_ty z;
18907 if (
18908 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18909 &&
18910 (z = expression_rule(p)) // expression
18911 )
18912 {
18913 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18914 _res = z;
18915 if (_res == NULL && PyErr_Occurred()) {
18916 p->error_indicator = 1;
18917 D(p->level--);
18918 return NULL;
18919 }
18920 goto done;
18921 }
18922 p->mark = _mark;
18923 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18925 }
18926 _res = NULL;
18927 done:
18928 D(p->level--);
18929 return _res;
18930}
18931
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018932// _tmp_52: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018933static void *
18934_tmp_52_rule(Parser *p)
18935{
18936 D(p->level++);
18937 if (p->error_indicator) {
18938 D(p->level--);
18939 return NULL;
18940 }
18941 void * _res = NULL;
18942 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018943 { // '->' expression
18944 if (p->error_indicator) {
18945 D(p->level--);
18946 return NULL;
18947 }
18948 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18949 Token * _literal;
18950 expr_ty z;
18951 if (
18952 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18953 &&
18954 (z = expression_rule(p)) // expression
18955 )
18956 {
18957 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18958 _res = z;
18959 if (_res == NULL && PyErr_Occurred()) {
18960 p->error_indicator = 1;
18961 D(p->level--);
18962 return NULL;
18963 }
18964 goto done;
18965 }
18966 p->mark = _mark;
18967 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18969 }
18970 _res = NULL;
18971 done:
18972 D(p->level--);
18973 return _res;
18974}
18975
18976// _tmp_53: NEWLINE INDENT
18977static void *
18978_tmp_53_rule(Parser *p)
18979{
18980 D(p->level++);
18981 if (p->error_indicator) {
18982 D(p->level--);
18983 return NULL;
18984 }
18985 void * _res = NULL;
18986 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018987 { // NEWLINE INDENT
18988 if (p->error_indicator) {
18989 D(p->level--);
18990 return NULL;
18991 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018992 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018993 Token * indent_var;
18994 Token * newline_var;
18995 if (
18996 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18997 &&
18998 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18999 )
19000 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019001 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 +010019002 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
19003 goto done;
19004 }
19005 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019006 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
19008 }
19009 _res = NULL;
19010 done:
19011 D(p->level--);
19012 return _res;
19013}
19014
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019015// _loop0_54: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019016static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019017_loop0_54_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019018{
19019 D(p->level++);
19020 if (p->error_indicator) {
19021 D(p->level--);
19022 return NULL;
19023 }
19024 void *_res = NULL;
19025 int _mark = p->mark;
19026 int _start_mark = p->mark;
19027 void **_children = PyMem_Malloc(sizeof(void *));
19028 if (!_children) {
19029 p->error_indicator = 1;
19030 PyErr_NoMemory();
19031 D(p->level--);
19032 return NULL;
19033 }
19034 ssize_t _children_capacity = 1;
19035 ssize_t _n = 0;
19036 { // param_no_default
19037 if (p->error_indicator) {
19038 D(p->level--);
19039 return NULL;
19040 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019041 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 +010019042 arg_ty param_no_default_var;
19043 while (
19044 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19045 )
19046 {
19047 _res = param_no_default_var;
19048 if (_n == _children_capacity) {
19049 _children_capacity *= 2;
19050 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19051 if (!_new_children) {
19052 p->error_indicator = 1;
19053 PyErr_NoMemory();
19054 D(p->level--);
19055 return NULL;
19056 }
19057 _children = _new_children;
19058 }
19059 _children[_n++] = _res;
19060 _mark = p->mark;
19061 }
19062 p->mark = _mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019063 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019065 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019066 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019067 if (!_seq) {
19068 PyMem_Free(_children);
19069 p->error_indicator = 1;
19070 PyErr_NoMemory();
19071 D(p->level--);
19072 return NULL;
19073 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019074 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019075 PyMem_Free(_children);
19076 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
19077 D(p->level--);
19078 return _seq;
19079}
19080
19081// _loop0_55: param_with_default
19082static asdl_seq *
19083_loop0_55_rule(Parser *p)
19084{
19085 D(p->level++);
19086 if (p->error_indicator) {
19087 D(p->level--);
19088 return NULL;
19089 }
19090 void *_res = NULL;
19091 int _mark = p->mark;
19092 int _start_mark = p->mark;
19093 void **_children = PyMem_Malloc(sizeof(void *));
19094 if (!_children) {
19095 p->error_indicator = 1;
19096 PyErr_NoMemory();
19097 D(p->level--);
19098 return NULL;
19099 }
19100 ssize_t _children_capacity = 1;
19101 ssize_t _n = 0;
19102 { // param_with_default
19103 if (p->error_indicator) {
19104 D(p->level--);
19105 return NULL;
19106 }
19107 D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19108 NameDefaultPair* param_with_default_var;
19109 while (
19110 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19111 )
19112 {
19113 _res = param_with_default_var;
19114 if (_n == _children_capacity) {
19115 _children_capacity *= 2;
19116 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19117 if (!_new_children) {
19118 p->error_indicator = 1;
19119 PyErr_NoMemory();
19120 D(p->level--);
19121 return NULL;
19122 }
19123 _children = _new_children;
19124 }
19125 _children[_n++] = _res;
19126 _mark = p->mark;
19127 }
19128 p->mark = _mark;
19129 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
19130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19131 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019132 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019133 if (!_seq) {
19134 PyMem_Free(_children);
19135 p->error_indicator = 1;
19136 PyErr_NoMemory();
19137 D(p->level--);
19138 return NULL;
19139 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019140 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019141 PyMem_Free(_children);
19142 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
19143 D(p->level--);
19144 return _seq;
19145}
19146
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019147// _loop0_56: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019148static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019149_loop0_56_rule(Parser *p)
19150{
19151 D(p->level++);
19152 if (p->error_indicator) {
19153 D(p->level--);
19154 return NULL;
19155 }
19156 void *_res = NULL;
19157 int _mark = p->mark;
19158 int _start_mark = p->mark;
19159 void **_children = PyMem_Malloc(sizeof(void *));
19160 if (!_children) {
19161 p->error_indicator = 1;
19162 PyErr_NoMemory();
19163 D(p->level--);
19164 return NULL;
19165 }
19166 ssize_t _children_capacity = 1;
19167 ssize_t _n = 0;
19168 { // param_with_default
19169 if (p->error_indicator) {
19170 D(p->level--);
19171 return NULL;
19172 }
19173 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19174 NameDefaultPair* param_with_default_var;
19175 while (
19176 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19177 )
19178 {
19179 _res = param_with_default_var;
19180 if (_n == _children_capacity) {
19181 _children_capacity *= 2;
19182 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19183 if (!_new_children) {
19184 p->error_indicator = 1;
19185 PyErr_NoMemory();
19186 D(p->level--);
19187 return NULL;
19188 }
19189 _children = _new_children;
19190 }
19191 _children[_n++] = _res;
19192 _mark = p->mark;
19193 }
19194 p->mark = _mark;
19195 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
19196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19197 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019198 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019199 if (!_seq) {
19200 PyMem_Free(_children);
19201 p->error_indicator = 1;
19202 PyErr_NoMemory();
19203 D(p->level--);
19204 return NULL;
19205 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019206 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019207 PyMem_Free(_children);
19208 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
19209 D(p->level--);
19210 return _seq;
19211}
19212
19213// _loop1_57: param_no_default
19214static asdl_seq *
19215_loop1_57_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019216{
19217 D(p->level++);
19218 if (p->error_indicator) {
19219 D(p->level--);
19220 return NULL;
19221 }
19222 void *_res = NULL;
19223 int _mark = p->mark;
19224 int _start_mark = p->mark;
19225 void **_children = PyMem_Malloc(sizeof(void *));
19226 if (!_children) {
19227 p->error_indicator = 1;
19228 PyErr_NoMemory();
19229 D(p->level--);
19230 return NULL;
19231 }
19232 ssize_t _children_capacity = 1;
19233 ssize_t _n = 0;
19234 { // param_no_default
19235 if (p->error_indicator) {
19236 D(p->level--);
19237 return NULL;
19238 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019239 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 +010019240 arg_ty param_no_default_var;
19241 while (
19242 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19243 )
19244 {
19245 _res = param_no_default_var;
19246 if (_n == _children_capacity) {
19247 _children_capacity *= 2;
19248 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19249 if (!_new_children) {
19250 p->error_indicator = 1;
19251 PyErr_NoMemory();
19252 D(p->level--);
19253 return NULL;
19254 }
19255 _children = _new_children;
19256 }
19257 _children[_n++] = _res;
19258 _mark = p->mark;
19259 }
19260 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019261 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19263 }
19264 if (_n == 0 || p->error_indicator) {
19265 PyMem_Free(_children);
19266 D(p->level--);
19267 return NULL;
19268 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019269 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019270 if (!_seq) {
19271 PyMem_Free(_children);
19272 p->error_indicator = 1;
19273 PyErr_NoMemory();
19274 D(p->level--);
19275 return NULL;
19276 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019277 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019278 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019279 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019280 D(p->level--);
19281 return _seq;
19282}
19283
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019284// _loop0_58: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019285static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019286_loop0_58_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019287{
19288 D(p->level++);
19289 if (p->error_indicator) {
19290 D(p->level--);
19291 return NULL;
19292 }
19293 void *_res = NULL;
19294 int _mark = p->mark;
19295 int _start_mark = p->mark;
19296 void **_children = PyMem_Malloc(sizeof(void *));
19297 if (!_children) {
19298 p->error_indicator = 1;
19299 PyErr_NoMemory();
19300 D(p->level--);
19301 return NULL;
19302 }
19303 ssize_t _children_capacity = 1;
19304 ssize_t _n = 0;
19305 { // param_with_default
19306 if (p->error_indicator) {
19307 D(p->level--);
19308 return NULL;
19309 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019310 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 +010019311 NameDefaultPair* param_with_default_var;
19312 while (
19313 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19314 )
19315 {
19316 _res = param_with_default_var;
19317 if (_n == _children_capacity) {
19318 _children_capacity *= 2;
19319 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19320 if (!_new_children) {
19321 p->error_indicator = 1;
19322 PyErr_NoMemory();
19323 D(p->level--);
19324 return NULL;
19325 }
19326 _children = _new_children;
19327 }
19328 _children[_n++] = _res;
19329 _mark = p->mark;
19330 }
19331 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019332 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19334 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019335 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019336 if (!_seq) {
19337 PyMem_Free(_children);
19338 p->error_indicator = 1;
19339 PyErr_NoMemory();
19340 D(p->level--);
19341 return NULL;
19342 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019343 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019344 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019345 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019346 D(p->level--);
19347 return _seq;
19348}
19349
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019350// _loop1_59: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019351static asdl_seq *
19352_loop1_59_rule(Parser *p)
19353{
19354 D(p->level++);
19355 if (p->error_indicator) {
19356 D(p->level--);
19357 return NULL;
19358 }
19359 void *_res = NULL;
19360 int _mark = p->mark;
19361 int _start_mark = p->mark;
19362 void **_children = PyMem_Malloc(sizeof(void *));
19363 if (!_children) {
19364 p->error_indicator = 1;
19365 PyErr_NoMemory();
19366 D(p->level--);
19367 return NULL;
19368 }
19369 ssize_t _children_capacity = 1;
19370 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019371 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019372 if (p->error_indicator) {
19373 D(p->level--);
19374 return NULL;
19375 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019376 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19377 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019378 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019379 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019380 )
19381 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019382 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019383 if (_n == _children_capacity) {
19384 _children_capacity *= 2;
19385 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19386 if (!_new_children) {
19387 p->error_indicator = 1;
19388 PyErr_NoMemory();
19389 D(p->level--);
19390 return NULL;
19391 }
19392 _children = _new_children;
19393 }
19394 _children[_n++] = _res;
19395 _mark = p->mark;
19396 }
19397 p->mark = _mark;
19398 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019400 }
19401 if (_n == 0 || p->error_indicator) {
19402 PyMem_Free(_children);
19403 D(p->level--);
19404 return NULL;
19405 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019406 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019407 if (!_seq) {
19408 PyMem_Free(_children);
19409 p->error_indicator = 1;
19410 PyErr_NoMemory();
19411 D(p->level--);
19412 return NULL;
19413 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019414 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019415 PyMem_Free(_children);
19416 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
19417 D(p->level--);
19418 return _seq;
19419}
19420
19421// _loop1_60: param_no_default
19422static asdl_seq *
19423_loop1_60_rule(Parser *p)
19424{
19425 D(p->level++);
19426 if (p->error_indicator) {
19427 D(p->level--);
19428 return NULL;
19429 }
19430 void *_res = NULL;
19431 int _mark = p->mark;
19432 int _start_mark = p->mark;
19433 void **_children = PyMem_Malloc(sizeof(void *));
19434 if (!_children) {
19435 p->error_indicator = 1;
19436 PyErr_NoMemory();
19437 D(p->level--);
19438 return NULL;
19439 }
19440 ssize_t _children_capacity = 1;
19441 ssize_t _n = 0;
19442 { // param_no_default
19443 if (p->error_indicator) {
19444 D(p->level--);
19445 return NULL;
19446 }
19447 D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19448 arg_ty param_no_default_var;
19449 while (
19450 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19451 )
19452 {
19453 _res = param_no_default_var;
19454 if (_n == _children_capacity) {
19455 _children_capacity *= 2;
19456 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19457 if (!_new_children) {
19458 p->error_indicator = 1;
19459 PyErr_NoMemory();
19460 D(p->level--);
19461 return NULL;
19462 }
19463 _children = _new_children;
19464 }
19465 _children[_n++] = _res;
19466 _mark = p->mark;
19467 }
19468 p->mark = _mark;
19469 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19471 }
19472 if (_n == 0 || p->error_indicator) {
19473 PyMem_Free(_children);
19474 D(p->level--);
19475 return NULL;
19476 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019477 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019478 if (!_seq) {
19479 PyMem_Free(_children);
19480 p->error_indicator = 1;
19481 PyErr_NoMemory();
19482 D(p->level--);
19483 return NULL;
19484 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019485 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019486 PyMem_Free(_children);
19487 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
19488 D(p->level--);
19489 return _seq;
19490}
19491
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019492// _loop1_61: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019493static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019494_loop1_61_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019495{
19496 D(p->level++);
19497 if (p->error_indicator) {
19498 D(p->level--);
19499 return NULL;
19500 }
19501 void *_res = NULL;
19502 int _mark = p->mark;
19503 int _start_mark = p->mark;
19504 void **_children = PyMem_Malloc(sizeof(void *));
19505 if (!_children) {
19506 p->error_indicator = 1;
19507 PyErr_NoMemory();
19508 D(p->level--);
19509 return NULL;
19510 }
19511 ssize_t _children_capacity = 1;
19512 ssize_t _n = 0;
19513 { // param_no_default
19514 if (p->error_indicator) {
19515 D(p->level--);
19516 return NULL;
19517 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019518 D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019519 arg_ty param_no_default_var;
19520 while (
19521 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19522 )
19523 {
19524 _res = param_no_default_var;
19525 if (_n == _children_capacity) {
19526 _children_capacity *= 2;
19527 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19528 if (!_new_children) {
19529 p->error_indicator = 1;
19530 PyErr_NoMemory();
19531 D(p->level--);
19532 return NULL;
19533 }
19534 _children = _new_children;
19535 }
19536 _children[_n++] = _res;
19537 _mark = p->mark;
19538 }
19539 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019540 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19542 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019543 if (_n == 0 || p->error_indicator) {
19544 PyMem_Free(_children);
19545 D(p->level--);
19546 return NULL;
19547 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019548 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019549 if (!_seq) {
19550 PyMem_Free(_children);
19551 p->error_indicator = 1;
19552 PyErr_NoMemory();
19553 D(p->level--);
19554 return NULL;
19555 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019556 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019557 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019558 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019559 D(p->level--);
19560 return _seq;
19561}
19562
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019563// _loop0_62: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019564static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019565_loop0_62_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019566{
19567 D(p->level++);
19568 if (p->error_indicator) {
19569 D(p->level--);
19570 return NULL;
19571 }
19572 void *_res = NULL;
19573 int _mark = p->mark;
19574 int _start_mark = p->mark;
19575 void **_children = PyMem_Malloc(sizeof(void *));
19576 if (!_children) {
19577 p->error_indicator = 1;
19578 PyErr_NoMemory();
19579 D(p->level--);
19580 return NULL;
19581 }
19582 ssize_t _children_capacity = 1;
19583 ssize_t _n = 0;
19584 { // param_no_default
19585 if (p->error_indicator) {
19586 D(p->level--);
19587 return NULL;
19588 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019589 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 +010019590 arg_ty param_no_default_var;
19591 while (
19592 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19593 )
19594 {
19595 _res = param_no_default_var;
19596 if (_n == _children_capacity) {
19597 _children_capacity *= 2;
19598 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19599 if (!_new_children) {
19600 p->error_indicator = 1;
19601 PyErr_NoMemory();
19602 D(p->level--);
19603 return NULL;
19604 }
19605 _children = _new_children;
19606 }
19607 _children[_n++] = _res;
19608 _mark = p->mark;
19609 }
19610 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019611 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19613 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019614 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019615 if (!_seq) {
19616 PyMem_Free(_children);
19617 p->error_indicator = 1;
19618 PyErr_NoMemory();
19619 D(p->level--);
19620 return NULL;
19621 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019622 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019623 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019624 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019625 D(p->level--);
19626 return _seq;
19627}
19628
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019629// _loop1_63: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019630static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019631_loop1_63_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019632{
19633 D(p->level++);
19634 if (p->error_indicator) {
19635 D(p->level--);
19636 return NULL;
19637 }
19638 void *_res = NULL;
19639 int _mark = p->mark;
19640 int _start_mark = p->mark;
19641 void **_children = PyMem_Malloc(sizeof(void *));
19642 if (!_children) {
19643 p->error_indicator = 1;
19644 PyErr_NoMemory();
19645 D(p->level--);
19646 return NULL;
19647 }
19648 ssize_t _children_capacity = 1;
19649 ssize_t _n = 0;
19650 { // param_with_default
19651 if (p->error_indicator) {
19652 D(p->level--);
19653 return NULL;
19654 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019655 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 +010019656 NameDefaultPair* param_with_default_var;
19657 while (
19658 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19659 )
19660 {
19661 _res = param_with_default_var;
19662 if (_n == _children_capacity) {
19663 _children_capacity *= 2;
19664 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19665 if (!_new_children) {
19666 p->error_indicator = 1;
19667 PyErr_NoMemory();
19668 D(p->level--);
19669 return NULL;
19670 }
19671 _children = _new_children;
19672 }
19673 _children[_n++] = _res;
19674 _mark = p->mark;
19675 }
19676 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019677 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19679 }
19680 if (_n == 0 || p->error_indicator) {
19681 PyMem_Free(_children);
19682 D(p->level--);
19683 return NULL;
19684 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019685 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019686 if (!_seq) {
19687 PyMem_Free(_children);
19688 p->error_indicator = 1;
19689 PyErr_NoMemory();
19690 D(p->level--);
19691 return NULL;
19692 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019693 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019694 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019695 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019696 D(p->level--);
19697 return _seq;
19698}
19699
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019700// _loop0_64: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019701static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019702_loop0_64_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019703{
19704 D(p->level++);
19705 if (p->error_indicator) {
19706 D(p->level--);
19707 return NULL;
19708 }
19709 void *_res = NULL;
19710 int _mark = p->mark;
19711 int _start_mark = p->mark;
19712 void **_children = PyMem_Malloc(sizeof(void *));
19713 if (!_children) {
19714 p->error_indicator = 1;
19715 PyErr_NoMemory();
19716 D(p->level--);
19717 return NULL;
19718 }
19719 ssize_t _children_capacity = 1;
19720 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019721 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019722 if (p->error_indicator) {
19723 D(p->level--);
19724 return NULL;
19725 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019726 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19727 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019728 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019729 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019730 )
19731 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019732 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019733 if (_n == _children_capacity) {
19734 _children_capacity *= 2;
19735 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19736 if (!_new_children) {
19737 p->error_indicator = 1;
19738 PyErr_NoMemory();
19739 D(p->level--);
19740 return NULL;
19741 }
19742 _children = _new_children;
19743 }
19744 _children[_n++] = _res;
19745 _mark = p->mark;
19746 }
19747 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019748 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019750 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019751 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019752 if (!_seq) {
19753 PyMem_Free(_children);
19754 p->error_indicator = 1;
19755 PyErr_NoMemory();
19756 D(p->level--);
19757 return NULL;
19758 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019759 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019760 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019761 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019762 D(p->level--);
19763 return _seq;
19764}
19765
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019766// _loop1_65: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019767static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019768_loop1_65_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019769{
19770 D(p->level++);
19771 if (p->error_indicator) {
19772 D(p->level--);
19773 return NULL;
19774 }
19775 void *_res = NULL;
19776 int _mark = p->mark;
19777 int _start_mark = p->mark;
19778 void **_children = PyMem_Malloc(sizeof(void *));
19779 if (!_children) {
19780 p->error_indicator = 1;
19781 PyErr_NoMemory();
19782 D(p->level--);
19783 return NULL;
19784 }
19785 ssize_t _children_capacity = 1;
19786 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019787 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019788 if (p->error_indicator) {
19789 D(p->level--);
19790 return NULL;
19791 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019792 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19793 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019794 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019795 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019796 )
19797 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019798 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019799 if (_n == _children_capacity) {
19800 _children_capacity *= 2;
19801 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19802 if (!_new_children) {
19803 p->error_indicator = 1;
19804 PyErr_NoMemory();
19805 D(p->level--);
19806 return NULL;
19807 }
19808 _children = _new_children;
19809 }
19810 _children[_n++] = _res;
19811 _mark = p->mark;
19812 }
19813 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019814 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019816 }
19817 if (_n == 0 || p->error_indicator) {
19818 PyMem_Free(_children);
19819 D(p->level--);
19820 return NULL;
19821 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019822 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019823 if (!_seq) {
19824 PyMem_Free(_children);
19825 p->error_indicator = 1;
19826 PyErr_NoMemory();
19827 D(p->level--);
19828 return NULL;
19829 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019830 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019831 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019832 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019833 D(p->level--);
19834 return _seq;
19835}
19836
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019837// _loop0_66: param_maybe_default
19838static asdl_seq *
19839_loop0_66_rule(Parser *p)
19840{
19841 D(p->level++);
19842 if (p->error_indicator) {
19843 D(p->level--);
19844 return NULL;
19845 }
19846 void *_res = NULL;
19847 int _mark = p->mark;
19848 int _start_mark = p->mark;
19849 void **_children = PyMem_Malloc(sizeof(void *));
19850 if (!_children) {
19851 p->error_indicator = 1;
19852 PyErr_NoMemory();
19853 D(p->level--);
19854 return NULL;
19855 }
19856 ssize_t _children_capacity = 1;
19857 ssize_t _n = 0;
19858 { // param_maybe_default
19859 if (p->error_indicator) {
19860 D(p->level--);
19861 return NULL;
19862 }
19863 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19864 NameDefaultPair* param_maybe_default_var;
19865 while (
19866 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19867 )
19868 {
19869 _res = param_maybe_default_var;
19870 if (_n == _children_capacity) {
19871 _children_capacity *= 2;
19872 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19873 if (!_new_children) {
19874 p->error_indicator = 1;
19875 PyErr_NoMemory();
19876 D(p->level--);
19877 return NULL;
19878 }
19879 _children = _new_children;
19880 }
19881 _children[_n++] = _res;
19882 _mark = p->mark;
19883 }
19884 p->mark = _mark;
19885 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19887 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019888 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019889 if (!_seq) {
19890 PyMem_Free(_children);
19891 p->error_indicator = 1;
19892 PyErr_NoMemory();
19893 D(p->level--);
19894 return NULL;
19895 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019896 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019897 PyMem_Free(_children);
19898 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19899 D(p->level--);
19900 return _seq;
19901}
19902
19903// _loop1_67: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019904static asdl_seq *
19905_loop1_67_rule(Parser *p)
19906{
19907 D(p->level++);
19908 if (p->error_indicator) {
19909 D(p->level--);
19910 return NULL;
19911 }
19912 void *_res = NULL;
19913 int _mark = p->mark;
19914 int _start_mark = p->mark;
19915 void **_children = PyMem_Malloc(sizeof(void *));
19916 if (!_children) {
19917 p->error_indicator = 1;
19918 PyErr_NoMemory();
19919 D(p->level--);
19920 return NULL;
19921 }
19922 ssize_t _children_capacity = 1;
19923 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019924 { // param_maybe_default
19925 if (p->error_indicator) {
19926 D(p->level--);
19927 return NULL;
19928 }
19929 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19930 NameDefaultPair* param_maybe_default_var;
19931 while (
19932 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19933 )
19934 {
19935 _res = param_maybe_default_var;
19936 if (_n == _children_capacity) {
19937 _children_capacity *= 2;
19938 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19939 if (!_new_children) {
19940 p->error_indicator = 1;
19941 PyErr_NoMemory();
19942 D(p->level--);
19943 return NULL;
19944 }
19945 _children = _new_children;
19946 }
19947 _children[_n++] = _res;
19948 _mark = p->mark;
19949 }
19950 p->mark = _mark;
19951 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19953 }
19954 if (_n == 0 || p->error_indicator) {
19955 PyMem_Free(_children);
19956 D(p->level--);
19957 return NULL;
19958 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019959 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019960 if (!_seq) {
19961 PyMem_Free(_children);
19962 p->error_indicator = 1;
19963 PyErr_NoMemory();
19964 D(p->level--);
19965 return NULL;
19966 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019967 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019968 PyMem_Free(_children);
19969 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19970 D(p->level--);
19971 return _seq;
19972}
19973
19974// _loop1_68: ('@' named_expression NEWLINE)
19975static asdl_seq *
19976_loop1_68_rule(Parser *p)
19977{
19978 D(p->level++);
19979 if (p->error_indicator) {
19980 D(p->level--);
19981 return NULL;
19982 }
19983 void *_res = NULL;
19984 int _mark = p->mark;
19985 int _start_mark = p->mark;
19986 void **_children = PyMem_Malloc(sizeof(void *));
19987 if (!_children) {
19988 p->error_indicator = 1;
19989 PyErr_NoMemory();
19990 D(p->level--);
19991 return NULL;
19992 }
19993 ssize_t _children_capacity = 1;
19994 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019995 { // ('@' named_expression NEWLINE)
19996 if (p->error_indicator) {
19997 D(p->level--);
19998 return NULL;
19999 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020000 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000020001 void *_tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020002 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000020003 (_tmp_147_var = _tmp_147_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020004 )
20005 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000020006 _res = _tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020007 if (_n == _children_capacity) {
20008 _children_capacity *= 2;
20009 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20010 if (!_new_children) {
20011 p->error_indicator = 1;
20012 PyErr_NoMemory();
20013 D(p->level--);
20014 return NULL;
20015 }
20016 _children = _new_children;
20017 }
20018 _children[_n++] = _res;
20019 _mark = p->mark;
20020 }
20021 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020022 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
20024 }
20025 if (_n == 0 || p->error_indicator) {
20026 PyMem_Free(_children);
20027 D(p->level--);
20028 return NULL;
20029 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020030 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020031 if (!_seq) {
20032 PyMem_Free(_children);
20033 p->error_indicator = 1;
20034 PyErr_NoMemory();
20035 D(p->level--);
20036 return NULL;
20037 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020038 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020039 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020040 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020041 D(p->level--);
20042 return _seq;
20043}
20044
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020045// _tmp_69: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020046static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020047_tmp_69_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020048{
20049 D(p->level++);
20050 if (p->error_indicator) {
20051 D(p->level--);
20052 return NULL;
20053 }
20054 void * _res = NULL;
20055 int _mark = p->mark;
20056 { // '(' arguments? ')'
20057 if (p->error_indicator) {
20058 D(p->level--);
20059 return NULL;
20060 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020061 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020062 Token * _literal;
20063 Token * _literal_1;
20064 void *z;
20065 if (
20066 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20067 &&
20068 (z = arguments_rule(p), 1) // arguments?
20069 &&
20070 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20071 )
20072 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020073 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020074 _res = z;
20075 if (_res == NULL && PyErr_Occurred()) {
20076 p->error_indicator = 1;
20077 D(p->level--);
20078 return NULL;
20079 }
20080 goto done;
20081 }
20082 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020083 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
20085 }
20086 _res = NULL;
20087 done:
20088 D(p->level--);
20089 return _res;
20090}
20091
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020092// _loop1_70: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020093static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020094_loop1_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020095{
20096 D(p->level++);
20097 if (p->error_indicator) {
20098 D(p->level--);
20099 return NULL;
20100 }
20101 void *_res = NULL;
20102 int _mark = p->mark;
20103 int _start_mark = p->mark;
20104 void **_children = PyMem_Malloc(sizeof(void *));
20105 if (!_children) {
20106 p->error_indicator = 1;
20107 PyErr_NoMemory();
20108 D(p->level--);
20109 return NULL;
20110 }
20111 ssize_t _children_capacity = 1;
20112 ssize_t _n = 0;
20113 { // (',' star_expression)
20114 if (p->error_indicator) {
20115 D(p->level--);
20116 return NULL;
20117 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020118 D(fprintf(stderr, "%*c> _loop1_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000020119 void *_tmp_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020120 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000020121 (_tmp_148_var = _tmp_148_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020122 )
20123 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000020124 _res = _tmp_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020125 if (_n == _children_capacity) {
20126 _children_capacity *= 2;
20127 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20128 if (!_new_children) {
20129 p->error_indicator = 1;
20130 PyErr_NoMemory();
20131 D(p->level--);
20132 return NULL;
20133 }
20134 _children = _new_children;
20135 }
20136 _children[_n++] = _res;
20137 _mark = p->mark;
20138 }
20139 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020140 D(fprintf(stderr, "%*c%s _loop1_70[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
20142 }
20143 if (_n == 0 || p->error_indicator) {
20144 PyMem_Free(_children);
20145 D(p->level--);
20146 return NULL;
20147 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020148 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020149 if (!_seq) {
20150 PyMem_Free(_children);
20151 p->error_indicator = 1;
20152 PyErr_NoMemory();
20153 D(p->level--);
20154 return NULL;
20155 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020156 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020157 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020158 _PyPegen_insert_memo(p, _start_mark, _loop1_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020159 D(p->level--);
20160 return _seq;
20161}
20162
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020163// _loop0_72: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020164static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020165_loop0_72_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020166{
20167 D(p->level++);
20168 if (p->error_indicator) {
20169 D(p->level--);
20170 return NULL;
20171 }
20172 void *_res = NULL;
20173 int _mark = p->mark;
20174 int _start_mark = p->mark;
20175 void **_children = PyMem_Malloc(sizeof(void *));
20176 if (!_children) {
20177 p->error_indicator = 1;
20178 PyErr_NoMemory();
20179 D(p->level--);
20180 return NULL;
20181 }
20182 ssize_t _children_capacity = 1;
20183 ssize_t _n = 0;
20184 { // ',' star_named_expression
20185 if (p->error_indicator) {
20186 D(p->level--);
20187 return NULL;
20188 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020189 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 +010020190 Token * _literal;
20191 expr_ty elem;
20192 while (
20193 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20194 &&
20195 (elem = star_named_expression_rule(p)) // star_named_expression
20196 )
20197 {
20198 _res = elem;
20199 if (_res == NULL && PyErr_Occurred()) {
20200 p->error_indicator = 1;
20201 PyMem_Free(_children);
20202 D(p->level--);
20203 return NULL;
20204 }
20205 if (_n == _children_capacity) {
20206 _children_capacity *= 2;
20207 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20208 if (!_new_children) {
20209 p->error_indicator = 1;
20210 PyErr_NoMemory();
20211 D(p->level--);
20212 return NULL;
20213 }
20214 _children = _new_children;
20215 }
20216 _children[_n++] = _res;
20217 _mark = p->mark;
20218 }
20219 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020220 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
20222 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020223 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020224 if (!_seq) {
20225 PyMem_Free(_children);
20226 p->error_indicator = 1;
20227 PyErr_NoMemory();
20228 D(p->level--);
20229 return NULL;
20230 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020231 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020232 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020233 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020234 D(p->level--);
20235 return _seq;
20236}
20237
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020238// _gather_71: star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020239static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020240_gather_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020241{
20242 D(p->level++);
20243 if (p->error_indicator) {
20244 D(p->level--);
20245 return NULL;
20246 }
20247 asdl_seq * _res = NULL;
20248 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020249 { // star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020250 if (p->error_indicator) {
20251 D(p->level--);
20252 return NULL;
20253 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020254 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 +010020255 expr_ty elem;
20256 asdl_seq * seq;
20257 if (
20258 (elem = star_named_expression_rule(p)) // star_named_expression
20259 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020260 (seq = _loop0_72_rule(p)) // _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020261 )
20262 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020263 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 +010020264 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20265 goto done;
20266 }
20267 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020268 D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
20269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020270 }
20271 _res = NULL;
20272 done:
20273 D(p->level--);
20274 return _res;
20275}
20276
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020277// _loop1_73: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020278static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020279_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020280{
20281 D(p->level++);
20282 if (p->error_indicator) {
20283 D(p->level--);
20284 return NULL;
20285 }
20286 void *_res = NULL;
20287 int _mark = p->mark;
20288 int _start_mark = p->mark;
20289 void **_children = PyMem_Malloc(sizeof(void *));
20290 if (!_children) {
20291 p->error_indicator = 1;
20292 PyErr_NoMemory();
20293 D(p->level--);
20294 return NULL;
20295 }
20296 ssize_t _children_capacity = 1;
20297 ssize_t _n = 0;
20298 { // (',' expression)
20299 if (p->error_indicator) {
20300 D(p->level--);
20301 return NULL;
20302 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020303 D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000020304 void *_tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020305 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000020306 (_tmp_149_var = _tmp_149_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020307 )
20308 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000020309 _res = _tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020310 if (_n == _children_capacity) {
20311 _children_capacity *= 2;
20312 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20313 if (!_new_children) {
20314 p->error_indicator = 1;
20315 PyErr_NoMemory();
20316 D(p->level--);
20317 return NULL;
20318 }
20319 _children = _new_children;
20320 }
20321 _children[_n++] = _res;
20322 _mark = p->mark;
20323 }
20324 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020325 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
20327 }
20328 if (_n == 0 || p->error_indicator) {
20329 PyMem_Free(_children);
20330 D(p->level--);
20331 return NULL;
20332 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020333 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020334 if (!_seq) {
20335 PyMem_Free(_children);
20336 p->error_indicator = 1;
20337 PyErr_NoMemory();
20338 D(p->level--);
20339 return NULL;
20340 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020341 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020342 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020343 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020344 D(p->level--);
20345 return _seq;
20346}
20347
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020348// _loop0_74: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020349static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020350_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020351{
20352 D(p->level++);
20353 if (p->error_indicator) {
20354 D(p->level--);
20355 return NULL;
20356 }
20357 void *_res = NULL;
20358 int _mark = p->mark;
20359 int _start_mark = p->mark;
20360 void **_children = PyMem_Malloc(sizeof(void *));
20361 if (!_children) {
20362 p->error_indicator = 1;
20363 PyErr_NoMemory();
20364 D(p->level--);
20365 return NULL;
20366 }
20367 ssize_t _children_capacity = 1;
20368 ssize_t _n = 0;
20369 { // lambda_param_no_default
20370 if (p->error_indicator) {
20371 D(p->level--);
20372 return NULL;
20373 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020374 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 +010020375 arg_ty lambda_param_no_default_var;
20376 while (
20377 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20378 )
20379 {
20380 _res = lambda_param_no_default_var;
20381 if (_n == _children_capacity) {
20382 _children_capacity *= 2;
20383 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20384 if (!_new_children) {
20385 p->error_indicator = 1;
20386 PyErr_NoMemory();
20387 D(p->level--);
20388 return NULL;
20389 }
20390 _children = _new_children;
20391 }
20392 _children[_n++] = _res;
20393 _mark = p->mark;
20394 }
20395 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020396 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020398 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020399 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020400 if (!_seq) {
20401 PyMem_Free(_children);
20402 p->error_indicator = 1;
20403 PyErr_NoMemory();
20404 D(p->level--);
20405 return NULL;
20406 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020407 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020408 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020409 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020410 D(p->level--);
20411 return _seq;
20412}
20413
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020414// _loop0_75: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020415static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020416_loop0_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020417{
20418 D(p->level++);
20419 if (p->error_indicator) {
20420 D(p->level--);
20421 return NULL;
20422 }
20423 void *_res = NULL;
20424 int _mark = p->mark;
20425 int _start_mark = p->mark;
20426 void **_children = PyMem_Malloc(sizeof(void *));
20427 if (!_children) {
20428 p->error_indicator = 1;
20429 PyErr_NoMemory();
20430 D(p->level--);
20431 return NULL;
20432 }
20433 ssize_t _children_capacity = 1;
20434 ssize_t _n = 0;
20435 { // lambda_param_with_default
20436 if (p->error_indicator) {
20437 D(p->level--);
20438 return NULL;
20439 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020440 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 +010020441 NameDefaultPair* lambda_param_with_default_var;
20442 while (
20443 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20444 )
20445 {
20446 _res = lambda_param_with_default_var;
20447 if (_n == _children_capacity) {
20448 _children_capacity *= 2;
20449 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20450 if (!_new_children) {
20451 p->error_indicator = 1;
20452 PyErr_NoMemory();
20453 D(p->level--);
20454 return NULL;
20455 }
20456 _children = _new_children;
20457 }
20458 _children[_n++] = _res;
20459 _mark = p->mark;
20460 }
20461 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020462 D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20464 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020465 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020466 if (!_seq) {
20467 PyMem_Free(_children);
20468 p->error_indicator = 1;
20469 PyErr_NoMemory();
20470 D(p->level--);
20471 return NULL;
20472 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020473 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020474 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020475 _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
20476 D(p->level--);
20477 return _seq;
20478}
20479
20480// _loop0_76: lambda_param_with_default
20481static asdl_seq *
20482_loop0_76_rule(Parser *p)
20483{
20484 D(p->level++);
20485 if (p->error_indicator) {
20486 D(p->level--);
20487 return NULL;
20488 }
20489 void *_res = NULL;
20490 int _mark = p->mark;
20491 int _start_mark = p->mark;
20492 void **_children = PyMem_Malloc(sizeof(void *));
20493 if (!_children) {
20494 p->error_indicator = 1;
20495 PyErr_NoMemory();
20496 D(p->level--);
20497 return NULL;
20498 }
20499 ssize_t _children_capacity = 1;
20500 ssize_t _n = 0;
20501 { // lambda_param_with_default
20502 if (p->error_indicator) {
20503 D(p->level--);
20504 return NULL;
20505 }
20506 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20507 NameDefaultPair* lambda_param_with_default_var;
20508 while (
20509 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20510 )
20511 {
20512 _res = lambda_param_with_default_var;
20513 if (_n == _children_capacity) {
20514 _children_capacity *= 2;
20515 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20516 if (!_new_children) {
20517 p->error_indicator = 1;
20518 PyErr_NoMemory();
20519 D(p->level--);
20520 return NULL;
20521 }
20522 _children = _new_children;
20523 }
20524 _children[_n++] = _res;
20525 _mark = p->mark;
20526 }
20527 p->mark = _mark;
20528 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
20529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20530 }
20531 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20532 if (!_seq) {
20533 PyMem_Free(_children);
20534 p->error_indicator = 1;
20535 PyErr_NoMemory();
20536 D(p->level--);
20537 return NULL;
20538 }
20539 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20540 PyMem_Free(_children);
20541 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
20542 D(p->level--);
20543 return _seq;
20544}
20545
20546// _loop1_77: lambda_param_no_default
20547static asdl_seq *
20548_loop1_77_rule(Parser *p)
20549{
20550 D(p->level++);
20551 if (p->error_indicator) {
20552 D(p->level--);
20553 return NULL;
20554 }
20555 void *_res = NULL;
20556 int _mark = p->mark;
20557 int _start_mark = p->mark;
20558 void **_children = PyMem_Malloc(sizeof(void *));
20559 if (!_children) {
20560 p->error_indicator = 1;
20561 PyErr_NoMemory();
20562 D(p->level--);
20563 return NULL;
20564 }
20565 ssize_t _children_capacity = 1;
20566 ssize_t _n = 0;
20567 { // lambda_param_no_default
20568 if (p->error_indicator) {
20569 D(p->level--);
20570 return NULL;
20571 }
20572 D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20573 arg_ty lambda_param_no_default_var;
20574 while (
20575 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20576 )
20577 {
20578 _res = lambda_param_no_default_var;
20579 if (_n == _children_capacity) {
20580 _children_capacity *= 2;
20581 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20582 if (!_new_children) {
20583 p->error_indicator = 1;
20584 PyErr_NoMemory();
20585 D(p->level--);
20586 return NULL;
20587 }
20588 _children = _new_children;
20589 }
20590 _children[_n++] = _res;
20591 _mark = p->mark;
20592 }
20593 p->mark = _mark;
20594 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
20595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20596 }
20597 if (_n == 0 || p->error_indicator) {
20598 PyMem_Free(_children);
20599 D(p->level--);
20600 return NULL;
20601 }
20602 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20603 if (!_seq) {
20604 PyMem_Free(_children);
20605 p->error_indicator = 1;
20606 PyErr_NoMemory();
20607 D(p->level--);
20608 return NULL;
20609 }
20610 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20611 PyMem_Free(_children);
20612 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020613 D(p->level--);
20614 return _seq;
20615}
20616
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020617// _loop0_78: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020618static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020619_loop0_78_rule(Parser *p)
20620{
20621 D(p->level++);
20622 if (p->error_indicator) {
20623 D(p->level--);
20624 return NULL;
20625 }
20626 void *_res = NULL;
20627 int _mark = p->mark;
20628 int _start_mark = p->mark;
20629 void **_children = PyMem_Malloc(sizeof(void *));
20630 if (!_children) {
20631 p->error_indicator = 1;
20632 PyErr_NoMemory();
20633 D(p->level--);
20634 return NULL;
20635 }
20636 ssize_t _children_capacity = 1;
20637 ssize_t _n = 0;
20638 { // lambda_param_with_default
20639 if (p->error_indicator) {
20640 D(p->level--);
20641 return NULL;
20642 }
20643 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20644 NameDefaultPair* lambda_param_with_default_var;
20645 while (
20646 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20647 )
20648 {
20649 _res = lambda_param_with_default_var;
20650 if (_n == _children_capacity) {
20651 _children_capacity *= 2;
20652 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20653 if (!_new_children) {
20654 p->error_indicator = 1;
20655 PyErr_NoMemory();
20656 D(p->level--);
20657 return NULL;
20658 }
20659 _children = _new_children;
20660 }
20661 _children[_n++] = _res;
20662 _mark = p->mark;
20663 }
20664 p->mark = _mark;
20665 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20667 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020668 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020669 if (!_seq) {
20670 PyMem_Free(_children);
20671 p->error_indicator = 1;
20672 PyErr_NoMemory();
20673 D(p->level--);
20674 return NULL;
20675 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020676 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020677 PyMem_Free(_children);
20678 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20679 D(p->level--);
20680 return _seq;
20681}
20682
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020683// _loop1_79: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020684static asdl_seq *
20685_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020686{
20687 D(p->level++);
20688 if (p->error_indicator) {
20689 D(p->level--);
20690 return NULL;
20691 }
20692 void *_res = NULL;
20693 int _mark = p->mark;
20694 int _start_mark = p->mark;
20695 void **_children = PyMem_Malloc(sizeof(void *));
20696 if (!_children) {
20697 p->error_indicator = 1;
20698 PyErr_NoMemory();
20699 D(p->level--);
20700 return NULL;
20701 }
20702 ssize_t _children_capacity = 1;
20703 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020704 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020705 if (p->error_indicator) {
20706 D(p->level--);
20707 return NULL;
20708 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020709 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20710 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020711 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020712 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020713 )
20714 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020715 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020716 if (_n == _children_capacity) {
20717 _children_capacity *= 2;
20718 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20719 if (!_new_children) {
20720 p->error_indicator = 1;
20721 PyErr_NoMemory();
20722 D(p->level--);
20723 return NULL;
20724 }
20725 _children = _new_children;
20726 }
20727 _children[_n++] = _res;
20728 _mark = p->mark;
20729 }
20730 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020731 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020733 }
20734 if (_n == 0 || p->error_indicator) {
20735 PyMem_Free(_children);
20736 D(p->level--);
20737 return NULL;
20738 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020739 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020740 if (!_seq) {
20741 PyMem_Free(_children);
20742 p->error_indicator = 1;
20743 PyErr_NoMemory();
20744 D(p->level--);
20745 return NULL;
20746 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020747 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020748 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020749 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020750 D(p->level--);
20751 return _seq;
20752}
20753
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020754// _loop1_80: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020755static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020756_loop1_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020757{
20758 D(p->level++);
20759 if (p->error_indicator) {
20760 D(p->level--);
20761 return NULL;
20762 }
20763 void *_res = NULL;
20764 int _mark = p->mark;
20765 int _start_mark = p->mark;
20766 void **_children = PyMem_Malloc(sizeof(void *));
20767 if (!_children) {
20768 p->error_indicator = 1;
20769 PyErr_NoMemory();
20770 D(p->level--);
20771 return NULL;
20772 }
20773 ssize_t _children_capacity = 1;
20774 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020775 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020776 if (p->error_indicator) {
20777 D(p->level--);
20778 return NULL;
20779 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020780 D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20781 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020782 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020783 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020784 )
20785 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020786 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020787 if (_n == _children_capacity) {
20788 _children_capacity *= 2;
20789 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20790 if (!_new_children) {
20791 p->error_indicator = 1;
20792 PyErr_NoMemory();
20793 D(p->level--);
20794 return NULL;
20795 }
20796 _children = _new_children;
20797 }
20798 _children[_n++] = _res;
20799 _mark = p->mark;
20800 }
20801 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020802 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
20803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20804 }
20805 if (_n == 0 || p->error_indicator) {
20806 PyMem_Free(_children);
20807 D(p->level--);
20808 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020809 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020810 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020811 if (!_seq) {
20812 PyMem_Free(_children);
20813 p->error_indicator = 1;
20814 PyErr_NoMemory();
20815 D(p->level--);
20816 return NULL;
20817 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020818 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020819 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020820 _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020821 D(p->level--);
20822 return _seq;
20823}
20824
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020825// _loop1_81: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020826static asdl_seq *
20827_loop1_81_rule(Parser *p)
20828{
20829 D(p->level++);
20830 if (p->error_indicator) {
20831 D(p->level--);
20832 return NULL;
20833 }
20834 void *_res = NULL;
20835 int _mark = p->mark;
20836 int _start_mark = p->mark;
20837 void **_children = PyMem_Malloc(sizeof(void *));
20838 if (!_children) {
20839 p->error_indicator = 1;
20840 PyErr_NoMemory();
20841 D(p->level--);
20842 return NULL;
20843 }
20844 ssize_t _children_capacity = 1;
20845 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020846 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020847 if (p->error_indicator) {
20848 D(p->level--);
20849 return NULL;
20850 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020851 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20852 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020853 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020854 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020855 )
20856 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020857 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020858 if (_n == _children_capacity) {
20859 _children_capacity *= 2;
20860 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20861 if (!_new_children) {
20862 p->error_indicator = 1;
20863 PyErr_NoMemory();
20864 D(p->level--);
20865 return NULL;
20866 }
20867 _children = _new_children;
20868 }
20869 _children[_n++] = _res;
20870 _mark = p->mark;
20871 }
20872 p->mark = _mark;
20873 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020875 }
20876 if (_n == 0 || p->error_indicator) {
20877 PyMem_Free(_children);
20878 D(p->level--);
20879 return NULL;
20880 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020881 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020882 if (!_seq) {
20883 PyMem_Free(_children);
20884 p->error_indicator = 1;
20885 PyErr_NoMemory();
20886 D(p->level--);
20887 return NULL;
20888 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020889 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020890 PyMem_Free(_children);
20891 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
20892 D(p->level--);
20893 return _seq;
20894}
20895
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020896// _loop0_82: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020897static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020898_loop0_82_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020899{
20900 D(p->level++);
20901 if (p->error_indicator) {
20902 D(p->level--);
20903 return NULL;
20904 }
20905 void *_res = NULL;
20906 int _mark = p->mark;
20907 int _start_mark = p->mark;
20908 void **_children = PyMem_Malloc(sizeof(void *));
20909 if (!_children) {
20910 p->error_indicator = 1;
20911 PyErr_NoMemory();
20912 D(p->level--);
20913 return NULL;
20914 }
20915 ssize_t _children_capacity = 1;
20916 ssize_t _n = 0;
20917 { // lambda_param_no_default
20918 if (p->error_indicator) {
20919 D(p->level--);
20920 return NULL;
20921 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020922 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 +010020923 arg_ty lambda_param_no_default_var;
20924 while (
20925 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20926 )
20927 {
20928 _res = lambda_param_no_default_var;
20929 if (_n == _children_capacity) {
20930 _children_capacity *= 2;
20931 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20932 if (!_new_children) {
20933 p->error_indicator = 1;
20934 PyErr_NoMemory();
20935 D(p->level--);
20936 return NULL;
20937 }
20938 _children = _new_children;
20939 }
20940 _children[_n++] = _res;
20941 _mark = p->mark;
20942 }
20943 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020944 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20946 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020947 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020948 if (!_seq) {
20949 PyMem_Free(_children);
20950 p->error_indicator = 1;
20951 PyErr_NoMemory();
20952 D(p->level--);
20953 return NULL;
20954 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020955 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020956 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020957 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020958 D(p->level--);
20959 return _seq;
20960}
20961
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020962// _loop1_83: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020963static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020964_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020965{
20966 D(p->level++);
20967 if (p->error_indicator) {
20968 D(p->level--);
20969 return NULL;
20970 }
20971 void *_res = NULL;
20972 int _mark = p->mark;
20973 int _start_mark = p->mark;
20974 void **_children = PyMem_Malloc(sizeof(void *));
20975 if (!_children) {
20976 p->error_indicator = 1;
20977 PyErr_NoMemory();
20978 D(p->level--);
20979 return NULL;
20980 }
20981 ssize_t _children_capacity = 1;
20982 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020983 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020984 if (p->error_indicator) {
20985 D(p->level--);
20986 return NULL;
20987 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020988 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20989 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020990 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020991 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020992 )
20993 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020994 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020995 if (_n == _children_capacity) {
20996 _children_capacity *= 2;
20997 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20998 if (!_new_children) {
20999 p->error_indicator = 1;
21000 PyErr_NoMemory();
21001 D(p->level--);
21002 return NULL;
21003 }
21004 _children = _new_children;
21005 }
21006 _children[_n++] = _res;
21007 _mark = p->mark;
21008 }
21009 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021010 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021012 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021013 if (_n == 0 || p->error_indicator) {
21014 PyMem_Free(_children);
21015 D(p->level--);
21016 return NULL;
21017 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021018 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021019 if (!_seq) {
21020 PyMem_Free(_children);
21021 p->error_indicator = 1;
21022 PyErr_NoMemory();
21023 D(p->level--);
21024 return NULL;
21025 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021026 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021027 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021028 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021029 D(p->level--);
21030 return _seq;
21031}
21032
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021033// _loop0_84: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021034static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021035_loop0_84_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021036{
21037 D(p->level++);
21038 if (p->error_indicator) {
21039 D(p->level--);
21040 return NULL;
21041 }
21042 void *_res = NULL;
21043 int _mark = p->mark;
21044 int _start_mark = p->mark;
21045 void **_children = PyMem_Malloc(sizeof(void *));
21046 if (!_children) {
21047 p->error_indicator = 1;
21048 PyErr_NoMemory();
21049 D(p->level--);
21050 return NULL;
21051 }
21052 ssize_t _children_capacity = 1;
21053 ssize_t _n = 0;
21054 { // lambda_param_no_default
21055 if (p->error_indicator) {
21056 D(p->level--);
21057 return NULL;
21058 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021059 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 +010021060 arg_ty lambda_param_no_default_var;
21061 while (
21062 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
21063 )
21064 {
21065 _res = lambda_param_no_default_var;
21066 if (_n == _children_capacity) {
21067 _children_capacity *= 2;
21068 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21069 if (!_new_children) {
21070 p->error_indicator = 1;
21071 PyErr_NoMemory();
21072 D(p->level--);
21073 return NULL;
21074 }
21075 _children = _new_children;
21076 }
21077 _children[_n++] = _res;
21078 _mark = p->mark;
21079 }
21080 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021081 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
21083 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021084 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021085 if (!_seq) {
21086 PyMem_Free(_children);
21087 p->error_indicator = 1;
21088 PyErr_NoMemory();
21089 D(p->level--);
21090 return NULL;
21091 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021092 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021093 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021094 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021095 D(p->level--);
21096 return _seq;
21097}
21098
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021099// _loop1_85: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021100static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021101_loop1_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021102{
21103 D(p->level++);
21104 if (p->error_indicator) {
21105 D(p->level--);
21106 return NULL;
21107 }
21108 void *_res = NULL;
21109 int _mark = p->mark;
21110 int _start_mark = p->mark;
21111 void **_children = PyMem_Malloc(sizeof(void *));
21112 if (!_children) {
21113 p->error_indicator = 1;
21114 PyErr_NoMemory();
21115 D(p->level--);
21116 return NULL;
21117 }
21118 ssize_t _children_capacity = 1;
21119 ssize_t _n = 0;
21120 { // lambda_param_with_default
21121 if (p->error_indicator) {
21122 D(p->level--);
21123 return NULL;
21124 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021125 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 +010021126 NameDefaultPair* lambda_param_with_default_var;
21127 while (
21128 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
21129 )
21130 {
21131 _res = lambda_param_with_default_var;
21132 if (_n == _children_capacity) {
21133 _children_capacity *= 2;
21134 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21135 if (!_new_children) {
21136 p->error_indicator = 1;
21137 PyErr_NoMemory();
21138 D(p->level--);
21139 return NULL;
21140 }
21141 _children = _new_children;
21142 }
21143 _children[_n++] = _res;
21144 _mark = p->mark;
21145 }
21146 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021147 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
21149 }
21150 if (_n == 0 || p->error_indicator) {
21151 PyMem_Free(_children);
21152 D(p->level--);
21153 return NULL;
21154 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021155 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021156 if (!_seq) {
21157 PyMem_Free(_children);
21158 p->error_indicator = 1;
21159 PyErr_NoMemory();
21160 D(p->level--);
21161 return NULL;
21162 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021163 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021164 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021165 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021166 D(p->level--);
21167 return _seq;
21168}
21169
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021170// _loop0_86: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021171static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021172_loop0_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021173{
21174 D(p->level++);
21175 if (p->error_indicator) {
21176 D(p->level--);
21177 return NULL;
21178 }
21179 void *_res = NULL;
21180 int _mark = p->mark;
21181 int _start_mark = p->mark;
21182 void **_children = PyMem_Malloc(sizeof(void *));
21183 if (!_children) {
21184 p->error_indicator = 1;
21185 PyErr_NoMemory();
21186 D(p->level--);
21187 return NULL;
21188 }
21189 ssize_t _children_capacity = 1;
21190 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021191 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021192 if (p->error_indicator) {
21193 D(p->level--);
21194 return NULL;
21195 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021196 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21197 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021198 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021199 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021200 )
21201 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021202 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021203 if (_n == _children_capacity) {
21204 _children_capacity *= 2;
21205 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21206 if (!_new_children) {
21207 p->error_indicator = 1;
21208 PyErr_NoMemory();
21209 D(p->level--);
21210 return NULL;
21211 }
21212 _children = _new_children;
21213 }
21214 _children[_n++] = _res;
21215 _mark = p->mark;
21216 }
21217 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021218 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021220 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021221 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021222 if (!_seq) {
21223 PyMem_Free(_children);
21224 p->error_indicator = 1;
21225 PyErr_NoMemory();
21226 D(p->level--);
21227 return NULL;
21228 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021229 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021230 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021231 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021232 D(p->level--);
21233 return _seq;
21234}
21235
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021236// _loop1_87: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021237static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021238_loop1_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021239{
21240 D(p->level++);
21241 if (p->error_indicator) {
21242 D(p->level--);
21243 return NULL;
21244 }
21245 void *_res = NULL;
21246 int _mark = p->mark;
21247 int _start_mark = p->mark;
21248 void **_children = PyMem_Malloc(sizeof(void *));
21249 if (!_children) {
21250 p->error_indicator = 1;
21251 PyErr_NoMemory();
21252 D(p->level--);
21253 return NULL;
21254 }
21255 ssize_t _children_capacity = 1;
21256 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021257 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021258 if (p->error_indicator) {
21259 D(p->level--);
21260 return NULL;
21261 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021262 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21263 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021264 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021265 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021266 )
21267 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021268 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021269 if (_n == _children_capacity) {
21270 _children_capacity *= 2;
21271 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21272 if (!_new_children) {
21273 p->error_indicator = 1;
21274 PyErr_NoMemory();
21275 D(p->level--);
21276 return NULL;
21277 }
21278 _children = _new_children;
21279 }
21280 _children[_n++] = _res;
21281 _mark = p->mark;
21282 }
21283 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021284 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021286 }
21287 if (_n == 0 || p->error_indicator) {
21288 PyMem_Free(_children);
21289 D(p->level--);
21290 return NULL;
21291 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021292 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021293 if (!_seq) {
21294 PyMem_Free(_children);
21295 p->error_indicator = 1;
21296 PyErr_NoMemory();
21297 D(p->level--);
21298 return NULL;
21299 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021300 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021301 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021302 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021303 D(p->level--);
21304 return _seq;
21305}
21306
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021307// _loop1_88: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021308static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021309_loop1_88_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021310{
21311 D(p->level++);
21312 if (p->error_indicator) {
21313 D(p->level--);
21314 return NULL;
21315 }
21316 void *_res = NULL;
21317 int _mark = p->mark;
21318 int _start_mark = p->mark;
21319 void **_children = PyMem_Malloc(sizeof(void *));
21320 if (!_children) {
21321 p->error_indicator = 1;
21322 PyErr_NoMemory();
21323 D(p->level--);
21324 return NULL;
21325 }
21326 ssize_t _children_capacity = 1;
21327 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021328 { // ('or' conjunction)
21329 if (p->error_indicator) {
21330 D(p->level--);
21331 return NULL;
21332 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021333 D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000021334 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021335 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000021336 (_tmp_150_var = _tmp_150_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021337 )
21338 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000021339 _res = _tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021340 if (_n == _children_capacity) {
21341 _children_capacity *= 2;
21342 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21343 if (!_new_children) {
21344 p->error_indicator = 1;
21345 PyErr_NoMemory();
21346 D(p->level--);
21347 return NULL;
21348 }
21349 _children = _new_children;
21350 }
21351 _children[_n++] = _res;
21352 _mark = p->mark;
21353 }
21354 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021355 D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
21357 }
21358 if (_n == 0 || p->error_indicator) {
21359 PyMem_Free(_children);
21360 D(p->level--);
21361 return NULL;
21362 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021363 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021364 if (!_seq) {
21365 PyMem_Free(_children);
21366 p->error_indicator = 1;
21367 PyErr_NoMemory();
21368 D(p->level--);
21369 return NULL;
21370 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021371 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021372 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021373 _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021374 D(p->level--);
21375 return _seq;
21376}
21377
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021378// _loop1_89: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021379static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021380_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021381{
21382 D(p->level++);
21383 if (p->error_indicator) {
21384 D(p->level--);
21385 return NULL;
21386 }
21387 void *_res = NULL;
21388 int _mark = p->mark;
21389 int _start_mark = p->mark;
21390 void **_children = PyMem_Malloc(sizeof(void *));
21391 if (!_children) {
21392 p->error_indicator = 1;
21393 PyErr_NoMemory();
21394 D(p->level--);
21395 return NULL;
21396 }
21397 ssize_t _children_capacity = 1;
21398 ssize_t _n = 0;
21399 { // ('and' inversion)
21400 if (p->error_indicator) {
21401 D(p->level--);
21402 return NULL;
21403 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021404 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000021405 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021406 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000021407 (_tmp_151_var = _tmp_151_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021408 )
21409 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000021410 _res = _tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021411 if (_n == _children_capacity) {
21412 _children_capacity *= 2;
21413 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21414 if (!_new_children) {
21415 p->error_indicator = 1;
21416 PyErr_NoMemory();
21417 D(p->level--);
21418 return NULL;
21419 }
21420 _children = _new_children;
21421 }
21422 _children[_n++] = _res;
21423 _mark = p->mark;
21424 }
21425 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021426 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
21428 }
21429 if (_n == 0 || p->error_indicator) {
21430 PyMem_Free(_children);
21431 D(p->level--);
21432 return NULL;
21433 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021434 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021435 if (!_seq) {
21436 PyMem_Free(_children);
21437 p->error_indicator = 1;
21438 PyErr_NoMemory();
21439 D(p->level--);
21440 return NULL;
21441 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021442 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021443 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021444 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021445 D(p->level--);
21446 return _seq;
21447}
21448
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021449// _loop1_90: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021450static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021451_loop1_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021452{
21453 D(p->level++);
21454 if (p->error_indicator) {
21455 D(p->level--);
21456 return NULL;
21457 }
21458 void *_res = NULL;
21459 int _mark = p->mark;
21460 int _start_mark = p->mark;
21461 void **_children = PyMem_Malloc(sizeof(void *));
21462 if (!_children) {
21463 p->error_indicator = 1;
21464 PyErr_NoMemory();
21465 D(p->level--);
21466 return NULL;
21467 }
21468 ssize_t _children_capacity = 1;
21469 ssize_t _n = 0;
21470 { // compare_op_bitwise_or_pair
21471 if (p->error_indicator) {
21472 D(p->level--);
21473 return NULL;
21474 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021475 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021476 CmpopExprPair* compare_op_bitwise_or_pair_var;
21477 while (
21478 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
21479 )
21480 {
21481 _res = compare_op_bitwise_or_pair_var;
21482 if (_n == _children_capacity) {
21483 _children_capacity *= 2;
21484 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21485 if (!_new_children) {
21486 p->error_indicator = 1;
21487 PyErr_NoMemory();
21488 D(p->level--);
21489 return NULL;
21490 }
21491 _children = _new_children;
21492 }
21493 _children[_n++] = _res;
21494 _mark = p->mark;
21495 }
21496 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021497 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
21499 }
21500 if (_n == 0 || p->error_indicator) {
21501 PyMem_Free(_children);
21502 D(p->level--);
21503 return NULL;
21504 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021505 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021506 if (!_seq) {
21507 PyMem_Free(_children);
21508 p->error_indicator = 1;
21509 PyErr_NoMemory();
21510 D(p->level--);
21511 return NULL;
21512 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021513 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021514 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021515 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021516 D(p->level--);
21517 return _seq;
21518}
21519
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021520// _tmp_91: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021521static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021522_tmp_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021523{
21524 D(p->level++);
21525 if (p->error_indicator) {
21526 D(p->level--);
21527 return NULL;
21528 }
21529 void * _res = NULL;
21530 int _mark = p->mark;
21531 { // '!='
21532 if (p->error_indicator) {
21533 D(p->level--);
21534 return NULL;
21535 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021536 D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021537 Token * tok;
21538 if (
21539 (tok = _PyPegen_expect_token(p, 28)) // token='!='
21540 )
21541 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021542 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000021543 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021544 if (_res == NULL && PyErr_Occurred()) {
21545 p->error_indicator = 1;
21546 D(p->level--);
21547 return NULL;
21548 }
21549 goto done;
21550 }
21551 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021552 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
21554 }
21555 _res = NULL;
21556 done:
21557 D(p->level--);
21558 return _res;
21559}
21560
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021561// _loop0_93: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021562static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021563_loop0_93_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021564{
21565 D(p->level++);
21566 if (p->error_indicator) {
21567 D(p->level--);
21568 return NULL;
21569 }
21570 void *_res = NULL;
21571 int _mark = p->mark;
21572 int _start_mark = p->mark;
21573 void **_children = PyMem_Malloc(sizeof(void *));
21574 if (!_children) {
21575 p->error_indicator = 1;
21576 PyErr_NoMemory();
21577 D(p->level--);
21578 return NULL;
21579 }
21580 ssize_t _children_capacity = 1;
21581 ssize_t _n = 0;
21582 { // ',' slice
21583 if (p->error_indicator) {
21584 D(p->level--);
21585 return NULL;
21586 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021587 D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021588 Token * _literal;
21589 expr_ty elem;
21590 while (
21591 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21592 &&
21593 (elem = slice_rule(p)) // slice
21594 )
21595 {
21596 _res = elem;
21597 if (_res == NULL && PyErr_Occurred()) {
21598 p->error_indicator = 1;
21599 PyMem_Free(_children);
21600 D(p->level--);
21601 return NULL;
21602 }
21603 if (_n == _children_capacity) {
21604 _children_capacity *= 2;
21605 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21606 if (!_new_children) {
21607 p->error_indicator = 1;
21608 PyErr_NoMemory();
21609 D(p->level--);
21610 return NULL;
21611 }
21612 _children = _new_children;
21613 }
21614 _children[_n++] = _res;
21615 _mark = p->mark;
21616 }
21617 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021618 D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
21620 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021621 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021622 if (!_seq) {
21623 PyMem_Free(_children);
21624 p->error_indicator = 1;
21625 PyErr_NoMemory();
21626 D(p->level--);
21627 return NULL;
21628 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021629 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021630 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021631 _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021632 D(p->level--);
21633 return _seq;
21634}
21635
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021636// _gather_92: slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021637static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021638_gather_92_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021639{
21640 D(p->level++);
21641 if (p->error_indicator) {
21642 D(p->level--);
21643 return NULL;
21644 }
21645 asdl_seq * _res = NULL;
21646 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021647 { // slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021648 if (p->error_indicator) {
21649 D(p->level--);
21650 return NULL;
21651 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021652 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 +010021653 expr_ty elem;
21654 asdl_seq * seq;
21655 if (
21656 (elem = slice_rule(p)) // slice
21657 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021658 (seq = _loop0_93_rule(p)) // _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021659 )
21660 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021661 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 +010021662 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21663 goto done;
21664 }
21665 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021666 D(fprintf(stderr, "%*c%s _gather_92[%d-%d]: %s failed!\n", p->level, ' ',
21667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_93"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021668 }
21669 _res = NULL;
21670 done:
21671 D(p->level--);
21672 return _res;
21673}
21674
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021675// _tmp_94: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021676static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021677_tmp_94_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021678{
21679 D(p->level++);
21680 if (p->error_indicator) {
21681 D(p->level--);
21682 return NULL;
21683 }
21684 void * _res = NULL;
21685 int _mark = p->mark;
21686 { // ':' expression?
21687 if (p->error_indicator) {
21688 D(p->level--);
21689 return NULL;
21690 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021691 D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021692 Token * _literal;
21693 void *d;
21694 if (
21695 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21696 &&
21697 (d = expression_rule(p), 1) // expression?
21698 )
21699 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021700 D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021701 _res = d;
21702 if (_res == NULL && PyErr_Occurred()) {
21703 p->error_indicator = 1;
21704 D(p->level--);
21705 return NULL;
21706 }
21707 goto done;
21708 }
21709 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021710 D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
21712 }
21713 _res = NULL;
21714 done:
21715 D(p->level--);
21716 return _res;
21717}
21718
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021719// _tmp_95: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021720static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021721_tmp_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021722{
21723 D(p->level++);
21724 if (p->error_indicator) {
21725 D(p->level--);
21726 return NULL;
21727 }
21728 void * _res = NULL;
21729 int _mark = p->mark;
21730 { // tuple
21731 if (p->error_indicator) {
21732 D(p->level--);
21733 return NULL;
21734 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021735 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021736 expr_ty tuple_var;
21737 if (
21738 (tuple_var = tuple_rule(p)) // tuple
21739 )
21740 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021741 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021742 _res = tuple_var;
21743 goto done;
21744 }
21745 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021746 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
21748 }
21749 { // group
21750 if (p->error_indicator) {
21751 D(p->level--);
21752 return NULL;
21753 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021754 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021755 expr_ty group_var;
21756 if (
21757 (group_var = group_rule(p)) // group
21758 )
21759 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021760 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021761 _res = group_var;
21762 goto done;
21763 }
21764 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021765 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
21767 }
21768 { // genexp
21769 if (p->error_indicator) {
21770 D(p->level--);
21771 return NULL;
21772 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021773 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021774 expr_ty genexp_var;
21775 if (
21776 (genexp_var = genexp_rule(p)) // genexp
21777 )
21778 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021779 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021780 _res = genexp_var;
21781 goto done;
21782 }
21783 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021784 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
21786 }
21787 _res = NULL;
21788 done:
21789 D(p->level--);
21790 return _res;
21791}
21792
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021793// _tmp_96: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021794static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021795_tmp_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021796{
21797 D(p->level++);
21798 if (p->error_indicator) {
21799 D(p->level--);
21800 return NULL;
21801 }
21802 void * _res = NULL;
21803 int _mark = p->mark;
21804 { // list
21805 if (p->error_indicator) {
21806 D(p->level--);
21807 return NULL;
21808 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021809 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021810 expr_ty list_var;
21811 if (
21812 (list_var = list_rule(p)) // list
21813 )
21814 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021815 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021816 _res = list_var;
21817 goto done;
21818 }
21819 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021820 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
21822 }
21823 { // listcomp
21824 if (p->error_indicator) {
21825 D(p->level--);
21826 return NULL;
21827 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021828 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021829 expr_ty listcomp_var;
21830 if (
21831 (listcomp_var = listcomp_rule(p)) // listcomp
21832 )
21833 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021834 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021835 _res = listcomp_var;
21836 goto done;
21837 }
21838 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021839 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
21841 }
21842 _res = NULL;
21843 done:
21844 D(p->level--);
21845 return _res;
21846}
21847
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021848// _tmp_97: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021849static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021850_tmp_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021851{
21852 D(p->level++);
21853 if (p->error_indicator) {
21854 D(p->level--);
21855 return NULL;
21856 }
21857 void * _res = NULL;
21858 int _mark = p->mark;
21859 { // dict
21860 if (p->error_indicator) {
21861 D(p->level--);
21862 return NULL;
21863 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021864 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021865 expr_ty dict_var;
21866 if (
21867 (dict_var = dict_rule(p)) // dict
21868 )
21869 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021870 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021871 _res = dict_var;
21872 goto done;
21873 }
21874 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021875 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
21877 }
21878 { // set
21879 if (p->error_indicator) {
21880 D(p->level--);
21881 return NULL;
21882 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021883 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021884 expr_ty set_var;
21885 if (
21886 (set_var = set_rule(p)) // set
21887 )
21888 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021889 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021890 _res = set_var;
21891 goto done;
21892 }
21893 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021894 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
21896 }
21897 { // dictcomp
21898 if (p->error_indicator) {
21899 D(p->level--);
21900 return NULL;
21901 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021902 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021903 expr_ty dictcomp_var;
21904 if (
21905 (dictcomp_var = dictcomp_rule(p)) // dictcomp
21906 )
21907 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021908 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021909 _res = dictcomp_var;
21910 goto done;
21911 }
21912 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021913 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
21915 }
21916 { // setcomp
21917 if (p->error_indicator) {
21918 D(p->level--);
21919 return NULL;
21920 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021921 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021922 expr_ty setcomp_var;
21923 if (
21924 (setcomp_var = setcomp_rule(p)) // setcomp
21925 )
21926 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021927 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021928 _res = setcomp_var;
21929 goto done;
21930 }
21931 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021932 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
21934 }
21935 _res = NULL;
21936 done:
21937 D(p->level--);
21938 return _res;
21939}
21940
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021941// _loop1_98: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021942static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021943_loop1_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021944{
21945 D(p->level++);
21946 if (p->error_indicator) {
21947 D(p->level--);
21948 return NULL;
21949 }
21950 void *_res = NULL;
21951 int _mark = p->mark;
21952 int _start_mark = p->mark;
21953 void **_children = PyMem_Malloc(sizeof(void *));
21954 if (!_children) {
21955 p->error_indicator = 1;
21956 PyErr_NoMemory();
21957 D(p->level--);
21958 return NULL;
21959 }
21960 ssize_t _children_capacity = 1;
21961 ssize_t _n = 0;
21962 { // STRING
21963 if (p->error_indicator) {
21964 D(p->level--);
21965 return NULL;
21966 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021967 D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021968 expr_ty string_var;
21969 while (
21970 (string_var = _PyPegen_string_token(p)) // STRING
21971 )
21972 {
21973 _res = string_var;
21974 if (_n == _children_capacity) {
21975 _children_capacity *= 2;
21976 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21977 if (!_new_children) {
21978 p->error_indicator = 1;
21979 PyErr_NoMemory();
21980 D(p->level--);
21981 return NULL;
21982 }
21983 _children = _new_children;
21984 }
21985 _children[_n++] = _res;
21986 _mark = p->mark;
21987 }
21988 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021989 D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
21991 }
21992 if (_n == 0 || p->error_indicator) {
21993 PyMem_Free(_children);
21994 D(p->level--);
21995 return NULL;
21996 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021997 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021998 if (!_seq) {
21999 PyMem_Free(_children);
22000 p->error_indicator = 1;
22001 PyErr_NoMemory();
22002 D(p->level--);
22003 return NULL;
22004 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022005 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022006 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022007 _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022008 D(p->level--);
22009 return _seq;
22010}
22011
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022012// _tmp_99: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022013static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022014_tmp_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022015{
22016 D(p->level++);
22017 if (p->error_indicator) {
22018 D(p->level--);
22019 return NULL;
22020 }
22021 void * _res = NULL;
22022 int _mark = p->mark;
22023 { // star_named_expression ',' star_named_expressions?
22024 if (p->error_indicator) {
22025 D(p->level--);
22026 return NULL;
22027 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022028 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 +010022029 Token * _literal;
22030 expr_ty y;
22031 void *z;
22032 if (
22033 (y = star_named_expression_rule(p)) // star_named_expression
22034 &&
22035 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22036 &&
22037 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
22038 )
22039 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022040 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 +010022041 _res = _PyPegen_seq_insert_in_front ( p , y , z );
22042 if (_res == NULL && PyErr_Occurred()) {
22043 p->error_indicator = 1;
22044 D(p->level--);
22045 return NULL;
22046 }
22047 goto done;
22048 }
22049 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022050 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
22052 }
22053 _res = NULL;
22054 done:
22055 D(p->level--);
22056 return _res;
22057}
22058
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022059// _tmp_100: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022060static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022061_tmp_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022062{
22063 D(p->level++);
22064 if (p->error_indicator) {
22065 D(p->level--);
22066 return NULL;
22067 }
22068 void * _res = NULL;
22069 int _mark = p->mark;
22070 { // yield_expr
22071 if (p->error_indicator) {
22072 D(p->level--);
22073 return NULL;
22074 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022075 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022076 expr_ty yield_expr_var;
22077 if (
22078 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22079 )
22080 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022081 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 +010022082 _res = yield_expr_var;
22083 goto done;
22084 }
22085 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022086 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22088 }
22089 { // named_expression
22090 if (p->error_indicator) {
22091 D(p->level--);
22092 return NULL;
22093 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022094 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022095 expr_ty named_expression_var;
22096 if (
22097 (named_expression_var = named_expression_rule(p)) // named_expression
22098 )
22099 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022100 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 +010022101 _res = named_expression_var;
22102 goto done;
22103 }
22104 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022105 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
22107 }
22108 _res = NULL;
22109 done:
22110 D(p->level--);
22111 return _res;
22112}
22113
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022114// _loop0_102: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022115static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022116_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022117{
22118 D(p->level++);
22119 if (p->error_indicator) {
22120 D(p->level--);
22121 return NULL;
22122 }
22123 void *_res = NULL;
22124 int _mark = p->mark;
22125 int _start_mark = p->mark;
22126 void **_children = PyMem_Malloc(sizeof(void *));
22127 if (!_children) {
22128 p->error_indicator = 1;
22129 PyErr_NoMemory();
22130 D(p->level--);
22131 return NULL;
22132 }
22133 ssize_t _children_capacity = 1;
22134 ssize_t _n = 0;
22135 { // ',' double_starred_kvpair
22136 if (p->error_indicator) {
22137 D(p->level--);
22138 return NULL;
22139 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022140 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 +010022141 Token * _literal;
22142 KeyValuePair* elem;
22143 while (
22144 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22145 &&
22146 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
22147 )
22148 {
22149 _res = elem;
22150 if (_res == NULL && PyErr_Occurred()) {
22151 p->error_indicator = 1;
22152 PyMem_Free(_children);
22153 D(p->level--);
22154 return NULL;
22155 }
22156 if (_n == _children_capacity) {
22157 _children_capacity *= 2;
22158 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22159 if (!_new_children) {
22160 p->error_indicator = 1;
22161 PyErr_NoMemory();
22162 D(p->level--);
22163 return NULL;
22164 }
22165 _children = _new_children;
22166 }
22167 _children[_n++] = _res;
22168 _mark = p->mark;
22169 }
22170 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022171 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
22173 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022174 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022175 if (!_seq) {
22176 PyMem_Free(_children);
22177 p->error_indicator = 1;
22178 PyErr_NoMemory();
22179 D(p->level--);
22180 return NULL;
22181 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022182 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022183 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022184 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022185 D(p->level--);
22186 return _seq;
22187}
22188
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022189// _gather_101: double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022190static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022191_gather_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022192{
22193 D(p->level++);
22194 if (p->error_indicator) {
22195 D(p->level--);
22196 return NULL;
22197 }
22198 asdl_seq * _res = NULL;
22199 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022200 { // double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022201 if (p->error_indicator) {
22202 D(p->level--);
22203 return NULL;
22204 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022205 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 +010022206 KeyValuePair* elem;
22207 asdl_seq * seq;
22208 if (
22209 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
22210 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022211 (seq = _loop0_102_rule(p)) // _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022212 )
22213 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022214 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 +010022215 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22216 goto done;
22217 }
22218 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022219 D(fprintf(stderr, "%*c%s _gather_101[%d-%d]: %s failed!\n", p->level, ' ',
22220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022221 }
22222 _res = NULL;
22223 done:
22224 D(p->level--);
22225 return _res;
22226}
22227
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022228// _loop1_103: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022229static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022230_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022231{
22232 D(p->level++);
22233 if (p->error_indicator) {
22234 D(p->level--);
22235 return NULL;
22236 }
22237 void *_res = NULL;
22238 int _mark = p->mark;
22239 int _start_mark = p->mark;
22240 void **_children = PyMem_Malloc(sizeof(void *));
22241 if (!_children) {
22242 p->error_indicator = 1;
22243 PyErr_NoMemory();
22244 D(p->level--);
22245 return NULL;
22246 }
22247 ssize_t _children_capacity = 1;
22248 ssize_t _n = 0;
22249 { // for_if_clause
22250 if (p->error_indicator) {
22251 D(p->level--);
22252 return NULL;
22253 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022254 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 +010022255 comprehension_ty for_if_clause_var;
22256 while (
22257 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
22258 )
22259 {
22260 _res = for_if_clause_var;
22261 if (_n == _children_capacity) {
22262 _children_capacity *= 2;
22263 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22264 if (!_new_children) {
22265 p->error_indicator = 1;
22266 PyErr_NoMemory();
22267 D(p->level--);
22268 return NULL;
22269 }
22270 _children = _new_children;
22271 }
22272 _children[_n++] = _res;
22273 _mark = p->mark;
22274 }
22275 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022276 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
22278 }
22279 if (_n == 0 || p->error_indicator) {
22280 PyMem_Free(_children);
22281 D(p->level--);
22282 return NULL;
22283 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022284 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022285 if (!_seq) {
22286 PyMem_Free(_children);
22287 p->error_indicator = 1;
22288 PyErr_NoMemory();
22289 D(p->level--);
22290 return NULL;
22291 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022292 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022293 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022294 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022295 D(p->level--);
22296 return _seq;
22297}
22298
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022299// _loop0_104: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022300static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022301_loop0_104_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022302{
22303 D(p->level++);
22304 if (p->error_indicator) {
22305 D(p->level--);
22306 return NULL;
22307 }
22308 void *_res = NULL;
22309 int _mark = p->mark;
22310 int _start_mark = p->mark;
22311 void **_children = PyMem_Malloc(sizeof(void *));
22312 if (!_children) {
22313 p->error_indicator = 1;
22314 PyErr_NoMemory();
22315 D(p->level--);
22316 return NULL;
22317 }
22318 ssize_t _children_capacity = 1;
22319 ssize_t _n = 0;
22320 { // ('if' disjunction)
22321 if (p->error_indicator) {
22322 D(p->level--);
22323 return NULL;
22324 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022325 D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000022326 void *_tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022327 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000022328 (_tmp_152_var = _tmp_152_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022329 )
22330 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000022331 _res = _tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022332 if (_n == _children_capacity) {
22333 _children_capacity *= 2;
22334 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22335 if (!_new_children) {
22336 p->error_indicator = 1;
22337 PyErr_NoMemory();
22338 D(p->level--);
22339 return NULL;
22340 }
22341 _children = _new_children;
22342 }
22343 _children[_n++] = _res;
22344 _mark = p->mark;
22345 }
22346 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022347 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22349 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022350 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022351 if (!_seq) {
22352 PyMem_Free(_children);
22353 p->error_indicator = 1;
22354 PyErr_NoMemory();
22355 D(p->level--);
22356 return NULL;
22357 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022358 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022359 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022360 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022361 D(p->level--);
22362 return _seq;
22363}
22364
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022365// _loop0_105: ('if' disjunction)
22366static asdl_seq *
22367_loop0_105_rule(Parser *p)
22368{
22369 D(p->level++);
22370 if (p->error_indicator) {
22371 D(p->level--);
22372 return NULL;
22373 }
22374 void *_res = NULL;
22375 int _mark = p->mark;
22376 int _start_mark = p->mark;
22377 void **_children = PyMem_Malloc(sizeof(void *));
22378 if (!_children) {
22379 p->error_indicator = 1;
22380 PyErr_NoMemory();
22381 D(p->level--);
22382 return NULL;
22383 }
22384 ssize_t _children_capacity = 1;
22385 ssize_t _n = 0;
22386 { // ('if' disjunction)
22387 if (p->error_indicator) {
22388 D(p->level--);
22389 return NULL;
22390 }
22391 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000022392 void *_tmp_153_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022393 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000022394 (_tmp_153_var = _tmp_153_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022395 )
22396 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000022397 _res = _tmp_153_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022398 if (_n == _children_capacity) {
22399 _children_capacity *= 2;
22400 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22401 if (!_new_children) {
22402 p->error_indicator = 1;
22403 PyErr_NoMemory();
22404 D(p->level--);
22405 return NULL;
22406 }
22407 _children = _new_children;
22408 }
22409 _children[_n++] = _res;
22410 _mark = p->mark;
22411 }
22412 p->mark = _mark;
22413 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
22414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22415 }
22416 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22417 if (!_seq) {
22418 PyMem_Free(_children);
22419 p->error_indicator = 1;
22420 PyErr_NoMemory();
22421 D(p->level--);
22422 return NULL;
22423 }
22424 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22425 PyMem_Free(_children);
22426 _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
22427 D(p->level--);
22428 return _seq;
22429}
22430
22431// _loop0_107: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022432static asdl_seq *
22433_loop0_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022434{
22435 D(p->level++);
22436 if (p->error_indicator) {
22437 D(p->level--);
22438 return NULL;
22439 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022440 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022441 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022442 int _start_mark = p->mark;
22443 void **_children = PyMem_Malloc(sizeof(void *));
22444 if (!_children) {
22445 p->error_indicator = 1;
22446 PyErr_NoMemory();
22447 D(p->level--);
22448 return NULL;
22449 }
22450 ssize_t _children_capacity = 1;
22451 ssize_t _n = 0;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022452 { // ',' (starred_expression | named_expression !'=')
22453 if (p->error_indicator) {
22454 D(p->level--);
22455 return NULL;
22456 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022457 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 +010022458 Token * _literal;
22459 void *elem;
22460 while (
22461 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22462 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +000022463 (elem = _tmp_154_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022464 )
22465 {
22466 _res = elem;
22467 if (_res == NULL && PyErr_Occurred()) {
22468 p->error_indicator = 1;
22469 PyMem_Free(_children);
22470 D(p->level--);
22471 return NULL;
22472 }
22473 if (_n == _children_capacity) {
22474 _children_capacity *= 2;
22475 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22476 if (!_new_children) {
22477 p->error_indicator = 1;
22478 PyErr_NoMemory();
22479 D(p->level--);
22480 return NULL;
22481 }
22482 _children = _new_children;
22483 }
22484 _children[_n++] = _res;
22485 _mark = p->mark;
22486 }
22487 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022488 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22490 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022491 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022492 if (!_seq) {
22493 PyMem_Free(_children);
22494 p->error_indicator = 1;
22495 PyErr_NoMemory();
22496 D(p->level--);
22497 return NULL;
22498 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022499 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022500 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022501 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022502 D(p->level--);
22503 return _seq;
22504}
22505
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022506// _gather_106: (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022507static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022508_gather_106_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022509{
22510 D(p->level++);
22511 if (p->error_indicator) {
22512 D(p->level--);
22513 return NULL;
22514 }
22515 asdl_seq * _res = NULL;
22516 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022517 { // (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022518 if (p->error_indicator) {
22519 D(p->level--);
22520 return NULL;
22521 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022522 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 +010022523 void *elem;
22524 asdl_seq * seq;
22525 if (
Pablo Galindo58fb1562021-02-02 19:54:22 +000022526 (elem = _tmp_154_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022527 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022528 (seq = _loop0_107_rule(p)) // _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022529 )
22530 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022531 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 +010022532 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22533 goto done;
22534 }
22535 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022536 D(fprintf(stderr, "%*c%s _gather_106[%d-%d]: %s failed!\n", p->level, ' ',
22537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022538 }
22539 _res = NULL;
22540 done:
22541 D(p->level--);
22542 return _res;
22543}
22544
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022545// _tmp_108: ',' kwargs
Pablo Galindo4a97b152020-09-02 17:44:19 +010022546static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022547_tmp_108_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022548{
22549 D(p->level++);
22550 if (p->error_indicator) {
22551 D(p->level--);
22552 return NULL;
22553 }
22554 void * _res = NULL;
22555 int _mark = p->mark;
22556 { // ',' kwargs
22557 if (p->error_indicator) {
22558 D(p->level--);
22559 return NULL;
22560 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022561 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022562 Token * _literal;
22563 asdl_seq* k;
22564 if (
22565 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22566 &&
22567 (k = kwargs_rule(p)) // kwargs
22568 )
22569 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022570 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022571 _res = k;
22572 if (_res == NULL && PyErr_Occurred()) {
22573 p->error_indicator = 1;
22574 D(p->level--);
22575 return NULL;
22576 }
22577 goto done;
22578 }
22579 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022580 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22582 }
22583 _res = NULL;
22584 done:
22585 D(p->level--);
22586 return _res;
22587}
22588
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022589// _loop0_110: ',' kwarg_or_starred
Pablo Galindo4a97b152020-09-02 17:44:19 +010022590static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022591_loop0_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022592{
22593 D(p->level++);
22594 if (p->error_indicator) {
22595 D(p->level--);
22596 return NULL;
22597 }
22598 void *_res = NULL;
22599 int _mark = p->mark;
22600 int _start_mark = p->mark;
22601 void **_children = PyMem_Malloc(sizeof(void *));
22602 if (!_children) {
22603 p->error_indicator = 1;
22604 PyErr_NoMemory();
22605 D(p->level--);
22606 return NULL;
22607 }
22608 ssize_t _children_capacity = 1;
22609 ssize_t _n = 0;
22610 { // ',' kwarg_or_starred
22611 if (p->error_indicator) {
22612 D(p->level--);
22613 return NULL;
22614 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022615 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 +010022616 Token * _literal;
22617 KeywordOrStarred* elem;
22618 while (
22619 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22620 &&
22621 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22622 )
22623 {
22624 _res = elem;
22625 if (_res == NULL && PyErr_Occurred()) {
22626 p->error_indicator = 1;
22627 PyMem_Free(_children);
22628 D(p->level--);
22629 return NULL;
22630 }
22631 if (_n == _children_capacity) {
22632 _children_capacity *= 2;
22633 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22634 if (!_new_children) {
22635 p->error_indicator = 1;
22636 PyErr_NoMemory();
22637 D(p->level--);
22638 return NULL;
22639 }
22640 _children = _new_children;
22641 }
22642 _children[_n++] = _res;
22643 _mark = p->mark;
22644 }
22645 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022646 D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
22647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
22648 }
22649 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22650 if (!_seq) {
22651 PyMem_Free(_children);
22652 p->error_indicator = 1;
22653 PyErr_NoMemory();
22654 D(p->level--);
22655 return NULL;
22656 }
22657 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22658 PyMem_Free(_children);
22659 _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
22660 D(p->level--);
22661 return _seq;
22662}
22663
22664// _gather_109: kwarg_or_starred _loop0_110
22665static asdl_seq *
22666_gather_109_rule(Parser *p)
22667{
22668 D(p->level++);
22669 if (p->error_indicator) {
22670 D(p->level--);
22671 return NULL;
22672 }
22673 asdl_seq * _res = NULL;
22674 int _mark = p->mark;
22675 { // kwarg_or_starred _loop0_110
22676 if (p->error_indicator) {
22677 D(p->level--);
22678 return NULL;
22679 }
22680 D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22681 KeywordOrStarred* elem;
22682 asdl_seq * seq;
22683 if (
22684 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22685 &&
22686 (seq = _loop0_110_rule(p)) // _loop0_110
22687 )
22688 {
22689 D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22690 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22691 goto done;
22692 }
22693 p->mark = _mark;
22694 D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
22695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
22696 }
22697 _res = NULL;
22698 done:
22699 D(p->level--);
22700 return _res;
22701}
22702
22703// _loop0_112: ',' kwarg_or_double_starred
22704static asdl_seq *
22705_loop0_112_rule(Parser *p)
22706{
22707 D(p->level++);
22708 if (p->error_indicator) {
22709 D(p->level--);
22710 return NULL;
22711 }
22712 void *_res = NULL;
22713 int _mark = p->mark;
22714 int _start_mark = p->mark;
22715 void **_children = PyMem_Malloc(sizeof(void *));
22716 if (!_children) {
22717 p->error_indicator = 1;
22718 PyErr_NoMemory();
22719 D(p->level--);
22720 return NULL;
22721 }
22722 ssize_t _children_capacity = 1;
22723 ssize_t _n = 0;
22724 { // ',' kwarg_or_double_starred
22725 if (p->error_indicator) {
22726 D(p->level--);
22727 return NULL;
22728 }
22729 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22730 Token * _literal;
22731 KeywordOrStarred* elem;
22732 while (
22733 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22734 &&
22735 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22736 )
22737 {
22738 _res = elem;
22739 if (_res == NULL && PyErr_Occurred()) {
22740 p->error_indicator = 1;
22741 PyMem_Free(_children);
22742 D(p->level--);
22743 return NULL;
22744 }
22745 if (_n == _children_capacity) {
22746 _children_capacity *= 2;
22747 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22748 if (!_new_children) {
22749 p->error_indicator = 1;
22750 PyErr_NoMemory();
22751 D(p->level--);
22752 return NULL;
22753 }
22754 _children = _new_children;
22755 }
22756 _children[_n++] = _res;
22757 _mark = p->mark;
22758 }
22759 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022760 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022762 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022763 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022764 if (!_seq) {
22765 PyMem_Free(_children);
22766 p->error_indicator = 1;
22767 PyErr_NoMemory();
22768 D(p->level--);
22769 return NULL;
22770 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022771 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022772 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022773 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022774 D(p->level--);
22775 return _seq;
22776}
22777
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022778// _gather_111: kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022779static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022780_gather_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022781{
22782 D(p->level++);
22783 if (p->error_indicator) {
22784 D(p->level--);
22785 return NULL;
22786 }
22787 asdl_seq * _res = NULL;
22788 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022789 { // kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022790 if (p->error_indicator) {
22791 D(p->level--);
22792 return NULL;
22793 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022794 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 +010022795 KeywordOrStarred* elem;
22796 asdl_seq * seq;
22797 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022798 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022799 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022800 (seq = _loop0_112_rule(p)) // _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022801 )
22802 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022803 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 +010022804 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22805 goto done;
22806 }
22807 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022808 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022810 }
22811 _res = NULL;
22812 done:
22813 D(p->level--);
22814 return _res;
22815}
22816
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022817// _loop0_114: ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022818static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022819_loop0_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022820{
22821 D(p->level++);
22822 if (p->error_indicator) {
22823 D(p->level--);
22824 return NULL;
22825 }
22826 void *_res = NULL;
22827 int _mark = p->mark;
22828 int _start_mark = p->mark;
22829 void **_children = PyMem_Malloc(sizeof(void *));
22830 if (!_children) {
22831 p->error_indicator = 1;
22832 PyErr_NoMemory();
22833 D(p->level--);
22834 return NULL;
22835 }
22836 ssize_t _children_capacity = 1;
22837 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022838 { // ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022839 if (p->error_indicator) {
22840 D(p->level--);
22841 return NULL;
22842 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022843 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 +010022844 Token * _literal;
22845 KeywordOrStarred* elem;
22846 while (
22847 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22848 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022849 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022850 )
22851 {
22852 _res = elem;
22853 if (_res == NULL && PyErr_Occurred()) {
22854 p->error_indicator = 1;
22855 PyMem_Free(_children);
22856 D(p->level--);
22857 return NULL;
22858 }
22859 if (_n == _children_capacity) {
22860 _children_capacity *= 2;
22861 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22862 if (!_new_children) {
22863 p->error_indicator = 1;
22864 PyErr_NoMemory();
22865 D(p->level--);
22866 return NULL;
22867 }
22868 _children = _new_children;
22869 }
22870 _children[_n++] = _res;
22871 _mark = p->mark;
22872 }
22873 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022874 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022876 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022877 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022878 if (!_seq) {
22879 PyMem_Free(_children);
22880 p->error_indicator = 1;
22881 PyErr_NoMemory();
22882 D(p->level--);
22883 return NULL;
22884 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022885 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022886 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022887 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022888 D(p->level--);
22889 return _seq;
22890}
22891
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022892// _gather_113: kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022893static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022894_gather_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022895{
22896 D(p->level++);
22897 if (p->error_indicator) {
22898 D(p->level--);
22899 return NULL;
22900 }
22901 asdl_seq * _res = NULL;
22902 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022903 { // kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022904 if (p->error_indicator) {
22905 D(p->level--);
22906 return NULL;
22907 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022908 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 +010022909 KeywordOrStarred* elem;
22910 asdl_seq * seq;
22911 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022912 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022913 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022914 (seq = _loop0_114_rule(p)) // _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022915 )
22916 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022917 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 +010022918 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22919 goto done;
22920 }
22921 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022922 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022924 }
22925 _res = NULL;
22926 done:
22927 D(p->level--);
22928 return _res;
22929}
22930
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022931// _loop0_116: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022932static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022933_loop0_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022934{
22935 D(p->level++);
22936 if (p->error_indicator) {
22937 D(p->level--);
22938 return NULL;
22939 }
22940 void *_res = NULL;
22941 int _mark = p->mark;
22942 int _start_mark = p->mark;
22943 void **_children = PyMem_Malloc(sizeof(void *));
22944 if (!_children) {
22945 p->error_indicator = 1;
22946 PyErr_NoMemory();
22947 D(p->level--);
22948 return NULL;
22949 }
22950 ssize_t _children_capacity = 1;
22951 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022952 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022953 if (p->error_indicator) {
22954 D(p->level--);
22955 return NULL;
22956 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022957 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 +010022958 Token * _literal;
22959 KeywordOrStarred* elem;
22960 while (
22961 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22962 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022963 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022964 )
22965 {
22966 _res = elem;
22967 if (_res == NULL && PyErr_Occurred()) {
22968 p->error_indicator = 1;
22969 PyMem_Free(_children);
22970 D(p->level--);
22971 return NULL;
22972 }
22973 if (_n == _children_capacity) {
22974 _children_capacity *= 2;
22975 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22976 if (!_new_children) {
22977 p->error_indicator = 1;
22978 PyErr_NoMemory();
22979 D(p->level--);
22980 return NULL;
22981 }
22982 _children = _new_children;
22983 }
22984 _children[_n++] = _res;
22985 _mark = p->mark;
22986 }
22987 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022988 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022990 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022991 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022992 if (!_seq) {
22993 PyMem_Free(_children);
22994 p->error_indicator = 1;
22995 PyErr_NoMemory();
22996 D(p->level--);
22997 return NULL;
22998 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022999 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023000 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010023001 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023002 D(p->level--);
23003 return _seq;
23004}
23005
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023006// _gather_115: kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023007static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010023008_gather_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023009{
23010 D(p->level++);
23011 if (p->error_indicator) {
23012 D(p->level--);
23013 return NULL;
23014 }
23015 asdl_seq * _res = NULL;
23016 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023017 { // kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023018 if (p->error_indicator) {
23019 D(p->level--);
23020 return NULL;
23021 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023022 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 +010023023 KeywordOrStarred* elem;
23024 asdl_seq * seq;
23025 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023026 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023027 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010023028 (seq = _loop0_116_rule(p)) // _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023029 )
23030 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023031 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 +010023032 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23033 goto done;
23034 }
23035 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010023036 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023038 }
23039 _res = NULL;
23040 done:
23041 D(p->level--);
23042 return _res;
23043}
23044
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023045// _loop0_117: (',' star_target)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023046static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023047_loop0_117_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010023048{
23049 D(p->level++);
23050 if (p->error_indicator) {
23051 D(p->level--);
23052 return NULL;
23053 }
23054 void *_res = NULL;
23055 int _mark = p->mark;
23056 int _start_mark = p->mark;
23057 void **_children = PyMem_Malloc(sizeof(void *));
23058 if (!_children) {
23059 p->error_indicator = 1;
23060 PyErr_NoMemory();
23061 D(p->level--);
23062 return NULL;
23063 }
23064 ssize_t _children_capacity = 1;
23065 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023066 { // (',' star_target)
23067 if (p->error_indicator) {
23068 D(p->level--);
23069 return NULL;
23070 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023071 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000023072 void *_tmp_155_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023073 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000023074 (_tmp_155_var = _tmp_155_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023075 )
23076 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000023077 _res = _tmp_155_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023078 if (_n == _children_capacity) {
23079 _children_capacity *= 2;
23080 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23081 if (!_new_children) {
23082 p->error_indicator = 1;
23083 PyErr_NoMemory();
23084 D(p->level--);
23085 return NULL;
23086 }
23087 _children = _new_children;
23088 }
23089 _children[_n++] = _res;
23090 _mark = p->mark;
23091 }
23092 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023093 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
23095 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023096 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023097 if (!_seq) {
23098 PyMem_Free(_children);
23099 p->error_indicator = 1;
23100 PyErr_NoMemory();
23101 D(p->level--);
23102 return NULL;
23103 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023104 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023105 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023106 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023107 D(p->level--);
23108 return _seq;
23109}
23110
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023111// _loop0_119: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023112static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023113_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023114{
23115 D(p->level++);
23116 if (p->error_indicator) {
23117 D(p->level--);
23118 return NULL;
23119 }
23120 void *_res = NULL;
23121 int _mark = p->mark;
23122 int _start_mark = p->mark;
23123 void **_children = PyMem_Malloc(sizeof(void *));
23124 if (!_children) {
23125 p->error_indicator = 1;
23126 PyErr_NoMemory();
23127 D(p->level--);
23128 return NULL;
23129 }
23130 ssize_t _children_capacity = 1;
23131 ssize_t _n = 0;
23132 { // ',' star_target
23133 if (p->error_indicator) {
23134 D(p->level--);
23135 return NULL;
23136 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023137 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023138 Token * _literal;
23139 expr_ty elem;
23140 while (
23141 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23142 &&
23143 (elem = star_target_rule(p)) // star_target
23144 )
23145 {
23146 _res = elem;
23147 if (_res == NULL && PyErr_Occurred()) {
23148 p->error_indicator = 1;
23149 PyMem_Free(_children);
23150 D(p->level--);
23151 return NULL;
23152 }
23153 if (_n == _children_capacity) {
23154 _children_capacity *= 2;
23155 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23156 if (!_new_children) {
23157 p->error_indicator = 1;
23158 PyErr_NoMemory();
23159 D(p->level--);
23160 return NULL;
23161 }
23162 _children = _new_children;
23163 }
23164 _children[_n++] = _res;
23165 _mark = p->mark;
23166 }
23167 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023168 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
23170 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023171 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023172 if (!_seq) {
23173 PyMem_Free(_children);
23174 p->error_indicator = 1;
23175 PyErr_NoMemory();
23176 D(p->level--);
23177 return NULL;
23178 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023179 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023180 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023181 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023182 D(p->level--);
23183 return _seq;
23184}
23185
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023186// _gather_118: star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023187static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023188_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023189{
23190 D(p->level++);
23191 if (p->error_indicator) {
23192 D(p->level--);
23193 return NULL;
23194 }
23195 asdl_seq * _res = NULL;
23196 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023197 { // star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023198 if (p->error_indicator) {
23199 D(p->level--);
23200 return NULL;
23201 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023202 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 +010023203 expr_ty elem;
23204 asdl_seq * seq;
23205 if (
23206 (elem = star_target_rule(p)) // star_target
23207 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023208 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023209 )
23210 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023211 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 +010023212 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23213 goto done;
23214 }
23215 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023216 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
23217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023218 }
23219 _res = NULL;
23220 done:
23221 D(p->level--);
23222 return _res;
23223}
23224
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023225// _loop1_120: (',' star_target)
23226static asdl_seq *
23227_loop1_120_rule(Parser *p)
23228{
23229 D(p->level++);
23230 if (p->error_indicator) {
23231 D(p->level--);
23232 return NULL;
23233 }
23234 void *_res = NULL;
23235 int _mark = p->mark;
23236 int _start_mark = p->mark;
23237 void **_children = PyMem_Malloc(sizeof(void *));
23238 if (!_children) {
23239 p->error_indicator = 1;
23240 PyErr_NoMemory();
23241 D(p->level--);
23242 return NULL;
23243 }
23244 ssize_t _children_capacity = 1;
23245 ssize_t _n = 0;
23246 { // (',' star_target)
23247 if (p->error_indicator) {
23248 D(p->level--);
23249 return NULL;
23250 }
23251 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000023252 void *_tmp_156_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023253 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000023254 (_tmp_156_var = _tmp_156_rule(p)) // ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023255 )
23256 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000023257 _res = _tmp_156_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023258 if (_n == _children_capacity) {
23259 _children_capacity *= 2;
23260 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23261 if (!_new_children) {
23262 p->error_indicator = 1;
23263 PyErr_NoMemory();
23264 D(p->level--);
23265 return NULL;
23266 }
23267 _children = _new_children;
23268 }
23269 _children[_n++] = _res;
23270 _mark = p->mark;
23271 }
23272 p->mark = _mark;
23273 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
23274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
23275 }
23276 if (_n == 0 || p->error_indicator) {
23277 PyMem_Free(_children);
23278 D(p->level--);
23279 return NULL;
23280 }
23281 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23282 if (!_seq) {
23283 PyMem_Free(_children);
23284 p->error_indicator = 1;
23285 PyErr_NoMemory();
23286 D(p->level--);
23287 return NULL;
23288 }
23289 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23290 PyMem_Free(_children);
23291 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
23292 D(p->level--);
23293 return _seq;
23294}
23295
23296// _tmp_121: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023297static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023298_tmp_121_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023299{
23300 D(p->level++);
23301 if (p->error_indicator) {
23302 D(p->level--);
23303 return NULL;
23304 }
23305 void * _res = NULL;
23306 int _mark = p->mark;
23307 { // !'*' star_target
23308 if (p->error_indicator) {
23309 D(p->level--);
23310 return NULL;
23311 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023312 D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023313 expr_ty star_target_var;
23314 if (
23315 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
23316 &&
23317 (star_target_var = star_target_rule(p)) // star_target
23318 )
23319 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023320 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 +010023321 _res = star_target_var;
23322 goto done;
23323 }
23324 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023325 D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
23327 }
23328 _res = NULL;
23329 done:
23330 D(p->level--);
23331 return _res;
23332}
23333
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023334// _loop0_123: ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023335static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023336_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023337{
23338 D(p->level++);
23339 if (p->error_indicator) {
23340 D(p->level--);
23341 return NULL;
23342 }
23343 void *_res = NULL;
23344 int _mark = p->mark;
23345 int _start_mark = p->mark;
23346 void **_children = PyMem_Malloc(sizeof(void *));
23347 if (!_children) {
23348 p->error_indicator = 1;
23349 PyErr_NoMemory();
23350 D(p->level--);
23351 return NULL;
23352 }
23353 ssize_t _children_capacity = 1;
23354 ssize_t _n = 0;
23355 { // ',' del_target
23356 if (p->error_indicator) {
23357 D(p->level--);
23358 return NULL;
23359 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023360 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023361 Token * _literal;
23362 expr_ty elem;
23363 while (
23364 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23365 &&
23366 (elem = del_target_rule(p)) // del_target
23367 )
23368 {
23369 _res = elem;
23370 if (_res == NULL && PyErr_Occurred()) {
23371 p->error_indicator = 1;
23372 PyMem_Free(_children);
23373 D(p->level--);
23374 return NULL;
23375 }
23376 if (_n == _children_capacity) {
23377 _children_capacity *= 2;
23378 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23379 if (!_new_children) {
23380 p->error_indicator = 1;
23381 PyErr_NoMemory();
23382 D(p->level--);
23383 return NULL;
23384 }
23385 _children = _new_children;
23386 }
23387 _children[_n++] = _res;
23388 _mark = p->mark;
23389 }
23390 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023391 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
23393 }
23394 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23395 if (!_seq) {
23396 PyMem_Free(_children);
23397 p->error_indicator = 1;
23398 PyErr_NoMemory();
23399 D(p->level--);
23400 return NULL;
23401 }
23402 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23403 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023404 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023405 D(p->level--);
23406 return _seq;
23407}
23408
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023409// _gather_122: del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023410static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023411_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023412{
23413 D(p->level++);
23414 if (p->error_indicator) {
23415 D(p->level--);
23416 return NULL;
23417 }
23418 asdl_seq * _res = NULL;
23419 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023420 { // del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023421 if (p->error_indicator) {
23422 D(p->level--);
23423 return NULL;
23424 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023425 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 +000023426 expr_ty elem;
23427 asdl_seq * seq;
23428 if (
23429 (elem = del_target_rule(p)) // del_target
23430 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023431 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023432 )
23433 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023434 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 +000023435 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23436 goto done;
23437 }
23438 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023439 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
23440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023441 }
23442 _res = NULL;
23443 done:
23444 D(p->level--);
23445 return _res;
23446}
23447
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023448// _loop0_125: ',' target
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023449static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023450_loop0_125_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023451{
23452 D(p->level++);
23453 if (p->error_indicator) {
23454 D(p->level--);
23455 return NULL;
23456 }
23457 void *_res = NULL;
23458 int _mark = p->mark;
23459 int _start_mark = p->mark;
23460 void **_children = PyMem_Malloc(sizeof(void *));
23461 if (!_children) {
23462 p->error_indicator = 1;
23463 PyErr_NoMemory();
23464 D(p->level--);
23465 return NULL;
23466 }
23467 ssize_t _children_capacity = 1;
23468 ssize_t _n = 0;
23469 { // ',' target
23470 if (p->error_indicator) {
23471 D(p->level--);
23472 return NULL;
23473 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023474 D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023475 Token * _literal;
23476 expr_ty elem;
23477 while (
23478 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23479 &&
23480 (elem = target_rule(p)) // target
23481 )
23482 {
23483 _res = elem;
23484 if (_res == NULL && PyErr_Occurred()) {
23485 p->error_indicator = 1;
23486 PyMem_Free(_children);
23487 D(p->level--);
23488 return NULL;
23489 }
23490 if (_n == _children_capacity) {
23491 _children_capacity *= 2;
23492 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23493 if (!_new_children) {
23494 p->error_indicator = 1;
23495 PyErr_NoMemory();
23496 D(p->level--);
23497 return NULL;
23498 }
23499 _children = _new_children;
23500 }
23501 _children[_n++] = _res;
23502 _mark = p->mark;
23503 }
23504 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023505 D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023507 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023508 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023509 if (!_seq) {
23510 PyMem_Free(_children);
23511 p->error_indicator = 1;
23512 PyErr_NoMemory();
23513 D(p->level--);
23514 return NULL;
23515 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023516 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023517 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023518 _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023519 D(p->level--);
23520 return _seq;
23521}
23522
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023523// _gather_124: target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023524static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023525_gather_124_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023526{
23527 D(p->level++);
23528 if (p->error_indicator) {
23529 D(p->level--);
23530 return NULL;
23531 }
23532 asdl_seq * _res = NULL;
23533 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023534 { // target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023535 if (p->error_indicator) {
23536 D(p->level--);
23537 return NULL;
23538 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023539 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 +010023540 expr_ty elem;
23541 asdl_seq * seq;
23542 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023543 (elem = target_rule(p)) // target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023544 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023545 (seq = _loop0_125_rule(p)) // _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023546 )
23547 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023548 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 +010023549 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23550 goto done;
23551 }
23552 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023553 D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
23554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_125"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023555 }
23556 _res = NULL;
23557 done:
23558 D(p->level--);
23559 return _res;
23560}
23561
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023562// _tmp_126: args | expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023563static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023564_tmp_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023565{
23566 D(p->level++);
23567 if (p->error_indicator) {
23568 D(p->level--);
23569 return NULL;
23570 }
23571 void * _res = NULL;
23572 int _mark = p->mark;
23573 { // args
23574 if (p->error_indicator) {
23575 D(p->level--);
23576 return NULL;
23577 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023578 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023579 expr_ty args_var;
23580 if (
23581 (args_var = args_rule(p)) // args
23582 )
23583 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023584 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023585 _res = args_var;
23586 goto done;
23587 }
23588 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023589 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
23591 }
23592 { // expression for_if_clauses
23593 if (p->error_indicator) {
23594 D(p->level--);
23595 return NULL;
23596 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023597 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 +010023598 expr_ty expression_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010023599 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023600 if (
23601 (expression_var = expression_rule(p)) // expression
23602 &&
23603 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
23604 )
23605 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023606 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 +010023607 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
23608 goto done;
23609 }
23610 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023611 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
23613 }
23614 _res = NULL;
23615 done:
23616 D(p->level--);
23617 return _res;
23618}
23619
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023620// _loop0_127: star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023621static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023622_loop0_127_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023623{
23624 D(p->level++);
23625 if (p->error_indicator) {
23626 D(p->level--);
23627 return NULL;
23628 }
23629 void *_res = NULL;
23630 int _mark = p->mark;
23631 int _start_mark = p->mark;
23632 void **_children = PyMem_Malloc(sizeof(void *));
23633 if (!_children) {
23634 p->error_indicator = 1;
23635 PyErr_NoMemory();
23636 D(p->level--);
23637 return NULL;
23638 }
23639 ssize_t _children_capacity = 1;
23640 ssize_t _n = 0;
23641 { // star_named_expressions
23642 if (p->error_indicator) {
23643 D(p->level--);
23644 return NULL;
23645 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023646 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 +010023647 asdl_expr_seq* star_named_expressions_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023648 while (
23649 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23650 )
23651 {
23652 _res = star_named_expressions_var;
23653 if (_n == _children_capacity) {
23654 _children_capacity *= 2;
23655 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23656 if (!_new_children) {
23657 p->error_indicator = 1;
23658 PyErr_NoMemory();
23659 D(p->level--);
23660 return NULL;
23661 }
23662 _children = _new_children;
23663 }
23664 _children[_n++] = _res;
23665 _mark = p->mark;
23666 }
23667 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023668 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023670 }
23671 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23672 if (!_seq) {
23673 PyMem_Free(_children);
23674 p->error_indicator = 1;
23675 PyErr_NoMemory();
23676 D(p->level--);
23677 return NULL;
23678 }
23679 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23680 PyMem_Free(_children);
23681 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
23682 D(p->level--);
23683 return _seq;
23684}
23685
23686// _loop0_128: (star_targets '=')
23687static asdl_seq *
23688_loop0_128_rule(Parser *p)
23689{
23690 D(p->level++);
23691 if (p->error_indicator) {
23692 D(p->level--);
23693 return NULL;
23694 }
23695 void *_res = NULL;
23696 int _mark = p->mark;
23697 int _start_mark = p->mark;
23698 void **_children = PyMem_Malloc(sizeof(void *));
23699 if (!_children) {
23700 p->error_indicator = 1;
23701 PyErr_NoMemory();
23702 D(p->level--);
23703 return NULL;
23704 }
23705 ssize_t _children_capacity = 1;
23706 ssize_t _n = 0;
23707 { // (star_targets '=')
23708 if (p->error_indicator) {
23709 D(p->level--);
23710 return NULL;
23711 }
23712 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000023713 void *_tmp_157_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023714 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000023715 (_tmp_157_var = _tmp_157_rule(p)) // star_targets '='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023716 )
23717 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000023718 _res = _tmp_157_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023719 if (_n == _children_capacity) {
23720 _children_capacity *= 2;
23721 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23722 if (!_new_children) {
23723 p->error_indicator = 1;
23724 PyErr_NoMemory();
23725 D(p->level--);
23726 return NULL;
23727 }
23728 _children = _new_children;
23729 }
23730 _children[_n++] = _res;
23731 _mark = p->mark;
23732 }
23733 p->mark = _mark;
23734 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
23735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23736 }
23737 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23738 if (!_seq) {
23739 PyMem_Free(_children);
23740 p->error_indicator = 1;
23741 PyErr_NoMemory();
23742 D(p->level--);
23743 return NULL;
23744 }
23745 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23746 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023747 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023748 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023749 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023750}
23751
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023752// _loop0_129: (star_targets '=')
23753static asdl_seq *
23754_loop0_129_rule(Parser *p)
23755{
23756 D(p->level++);
23757 if (p->error_indicator) {
23758 D(p->level--);
23759 return NULL;
23760 }
23761 void *_res = NULL;
23762 int _mark = p->mark;
23763 int _start_mark = p->mark;
23764 void **_children = PyMem_Malloc(sizeof(void *));
23765 if (!_children) {
23766 p->error_indicator = 1;
23767 PyErr_NoMemory();
23768 D(p->level--);
23769 return NULL;
23770 }
23771 ssize_t _children_capacity = 1;
23772 ssize_t _n = 0;
23773 { // (star_targets '=')
23774 if (p->error_indicator) {
23775 D(p->level--);
23776 return NULL;
23777 }
23778 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000023779 void *_tmp_158_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023780 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000023781 (_tmp_158_var = _tmp_158_rule(p)) // star_targets '='
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023782 )
23783 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000023784 _res = _tmp_158_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023785 if (_n == _children_capacity) {
23786 _children_capacity *= 2;
23787 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23788 if (!_new_children) {
23789 p->error_indicator = 1;
23790 PyErr_NoMemory();
23791 D(p->level--);
23792 return NULL;
23793 }
23794 _children = _new_children;
23795 }
23796 _children[_n++] = _res;
23797 _mark = p->mark;
23798 }
23799 p->mark = _mark;
23800 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23802 }
23803 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23804 if (!_seq) {
23805 PyMem_Free(_children);
23806 p->error_indicator = 1;
23807 PyErr_NoMemory();
23808 D(p->level--);
23809 return NULL;
23810 }
23811 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23812 PyMem_Free(_children);
23813 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
23814 D(p->level--);
23815 return _seq;
23816}
23817
23818// _tmp_130: yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023819static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023820_tmp_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023821{
23822 D(p->level++);
23823 if (p->error_indicator) {
23824 D(p->level--);
23825 return NULL;
23826 }
23827 void * _res = NULL;
23828 int _mark = p->mark;
23829 { // yield_expr
23830 if (p->error_indicator) {
23831 D(p->level--);
23832 return NULL;
23833 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023834 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023835 expr_ty yield_expr_var;
23836 if (
23837 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23838 )
23839 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023840 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 +010023841 _res = yield_expr_var;
23842 goto done;
23843 }
23844 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023845 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23847 }
23848 { // star_expressions
23849 if (p->error_indicator) {
23850 D(p->level--);
23851 return NULL;
23852 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023853 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023854 expr_ty star_expressions_var;
23855 if (
23856 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23857 )
23858 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023859 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 +010023860 _res = star_expressions_var;
23861 goto done;
23862 }
23863 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023864 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23866 }
23867 _res = NULL;
23868 done:
23869 D(p->level--);
23870 return _res;
23871}
23872
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023873// _tmp_131: '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023874static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023875_tmp_131_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023876{
23877 D(p->level++);
23878 if (p->error_indicator) {
23879 D(p->level--);
23880 return NULL;
23881 }
23882 void * _res = NULL;
23883 int _mark = p->mark;
23884 { // '['
23885 if (p->error_indicator) {
23886 D(p->level--);
23887 return NULL;
23888 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023889 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023890 Token * _literal;
23891 if (
23892 (_literal = _PyPegen_expect_token(p, 9)) // token='['
23893 )
23894 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023895 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023896 _res = _literal;
23897 goto done;
23898 }
23899 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023900 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
23902 }
23903 { // '('
23904 if (p->error_indicator) {
23905 D(p->level--);
23906 return NULL;
23907 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023908 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023909 Token * _literal;
23910 if (
23911 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23912 )
23913 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023914 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023915 _res = _literal;
23916 goto done;
23917 }
23918 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023919 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
23921 }
23922 { // '{'
23923 if (p->error_indicator) {
23924 D(p->level--);
23925 return NULL;
23926 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023927 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023928 Token * _literal;
23929 if (
23930 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
23931 )
23932 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023933 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023934 _res = _literal;
23935 goto done;
23936 }
23937 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023938 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
23940 }
23941 _res = NULL;
23942 done:
23943 D(p->level--);
23944 return _res;
23945}
23946
Pablo Galindo835f14f2021-01-31 22:52:56 +000023947// _tmp_132: '[' | '{'
23948static void *
23949_tmp_132_rule(Parser *p)
23950{
23951 D(p->level++);
23952 if (p->error_indicator) {
23953 D(p->level--);
23954 return NULL;
23955 }
23956 void * _res = NULL;
23957 int _mark = p->mark;
23958 { // '['
23959 if (p->error_indicator) {
23960 D(p->level--);
23961 return NULL;
23962 }
23963 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
23964 Token * _literal;
23965 if (
23966 (_literal = _PyPegen_expect_token(p, 9)) // token='['
23967 )
23968 {
23969 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
23970 _res = _literal;
23971 goto done;
23972 }
23973 p->mark = _mark;
23974 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
23975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
23976 }
23977 { // '{'
23978 if (p->error_indicator) {
23979 D(p->level--);
23980 return NULL;
23981 }
23982 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
23983 Token * _literal;
23984 if (
23985 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
23986 )
23987 {
23988 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
23989 _res = _literal;
23990 goto done;
23991 }
23992 p->mark = _mark;
23993 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
23994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
23995 }
23996 _res = NULL;
23997 done:
23998 D(p->level--);
23999 return _res;
24000}
24001
24002// _loop0_133: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024003static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024004_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024005{
24006 D(p->level++);
24007 if (p->error_indicator) {
24008 D(p->level--);
24009 return NULL;
24010 }
24011 void *_res = NULL;
24012 int _mark = p->mark;
24013 int _start_mark = p->mark;
24014 void **_children = PyMem_Malloc(sizeof(void *));
24015 if (!_children) {
24016 p->error_indicator = 1;
24017 PyErr_NoMemory();
24018 D(p->level--);
24019 return NULL;
24020 }
24021 ssize_t _children_capacity = 1;
24022 ssize_t _n = 0;
24023 { // param_no_default
24024 if (p->error_indicator) {
24025 D(p->level--);
24026 return NULL;
24027 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024028 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024029 arg_ty param_no_default_var;
24030 while (
24031 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24032 )
24033 {
24034 _res = param_no_default_var;
24035 if (_n == _children_capacity) {
24036 _children_capacity *= 2;
24037 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24038 if (!_new_children) {
24039 p->error_indicator = 1;
24040 PyErr_NoMemory();
24041 D(p->level--);
24042 return NULL;
24043 }
24044 _children = _new_children;
24045 }
24046 _children[_n++] = _res;
24047 _mark = p->mark;
24048 }
24049 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024050 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24052 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024053 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024054 if (!_seq) {
24055 PyMem_Free(_children);
24056 p->error_indicator = 1;
24057 PyErr_NoMemory();
24058 D(p->level--);
24059 return NULL;
24060 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024061 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024062 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024063 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024064 D(p->level--);
24065 return _seq;
24066}
24067
Pablo Galindo835f14f2021-01-31 22:52:56 +000024068// _loop1_134: param_with_default
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024069static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024070_loop1_134_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024071{
24072 D(p->level++);
24073 if (p->error_indicator) {
24074 D(p->level--);
24075 return NULL;
24076 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024077 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024078 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024079 int _start_mark = p->mark;
24080 void **_children = PyMem_Malloc(sizeof(void *));
24081 if (!_children) {
24082 p->error_indicator = 1;
24083 PyErr_NoMemory();
24084 D(p->level--);
24085 return NULL;
24086 }
24087 ssize_t _children_capacity = 1;
24088 ssize_t _n = 0;
24089 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024090 if (p->error_indicator) {
24091 D(p->level--);
24092 return NULL;
24093 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024094 D(fprintf(stderr, "%*c> _loop1_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024095 NameDefaultPair* param_with_default_var;
24096 while (
24097 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024098 )
24099 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024100 _res = param_with_default_var;
24101 if (_n == _children_capacity) {
24102 _children_capacity *= 2;
24103 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24104 if (!_new_children) {
24105 p->error_indicator = 1;
24106 PyErr_NoMemory();
24107 D(p->level--);
24108 return NULL;
24109 }
24110 _children = _new_children;
24111 }
24112 _children[_n++] = _res;
24113 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024114 }
24115 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024116 D(fprintf(stderr, "%*c%s _loop1_134[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024118 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024119 if (_n == 0 || p->error_indicator) {
24120 PyMem_Free(_children);
24121 D(p->level--);
24122 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024123 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024124 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24125 if (!_seq) {
24126 PyMem_Free(_children);
24127 p->error_indicator = 1;
24128 PyErr_NoMemory();
24129 D(p->level--);
24130 return NULL;
24131 }
24132 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24133 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024134 _PyPegen_insert_memo(p, _start_mark, _loop1_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024135 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024136 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024137}
24138
Pablo Galindo835f14f2021-01-31 22:52:56 +000024139// _loop0_135: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024140static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024141_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024142{
24143 D(p->level++);
24144 if (p->error_indicator) {
24145 D(p->level--);
24146 return NULL;
24147 }
24148 void *_res = NULL;
24149 int _mark = p->mark;
24150 int _start_mark = p->mark;
24151 void **_children = PyMem_Malloc(sizeof(void *));
24152 if (!_children) {
24153 p->error_indicator = 1;
24154 PyErr_NoMemory();
24155 D(p->level--);
24156 return NULL;
24157 }
24158 ssize_t _children_capacity = 1;
24159 ssize_t _n = 0;
24160 { // lambda_param_no_default
24161 if (p->error_indicator) {
24162 D(p->level--);
24163 return NULL;
24164 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024165 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024166 arg_ty lambda_param_no_default_var;
24167 while (
24168 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24169 )
24170 {
24171 _res = lambda_param_no_default_var;
24172 if (_n == _children_capacity) {
24173 _children_capacity *= 2;
24174 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24175 if (!_new_children) {
24176 p->error_indicator = 1;
24177 PyErr_NoMemory();
24178 D(p->level--);
24179 return NULL;
24180 }
24181 _children = _new_children;
24182 }
24183 _children[_n++] = _res;
24184 _mark = p->mark;
24185 }
24186 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024187 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24189 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024190 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024191 if (!_seq) {
24192 PyMem_Free(_children);
24193 p->error_indicator = 1;
24194 PyErr_NoMemory();
24195 D(p->level--);
24196 return NULL;
24197 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024198 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024199 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024200 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024201 D(p->level--);
24202 return _seq;
24203}
24204
Pablo Galindo835f14f2021-01-31 22:52:56 +000024205// _loop1_136: lambda_param_with_default
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024206static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024207_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024208{
24209 D(p->level++);
24210 if (p->error_indicator) {
24211 D(p->level--);
24212 return NULL;
24213 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024214 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024215 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024216 int _start_mark = p->mark;
24217 void **_children = PyMem_Malloc(sizeof(void *));
24218 if (!_children) {
24219 p->error_indicator = 1;
24220 PyErr_NoMemory();
24221 D(p->level--);
24222 return NULL;
24223 }
24224 ssize_t _children_capacity = 1;
24225 ssize_t _n = 0;
24226 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024227 if (p->error_indicator) {
24228 D(p->level--);
24229 return NULL;
24230 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024231 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024232 NameDefaultPair* lambda_param_with_default_var;
24233 while (
24234 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024235 )
24236 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024237 _res = lambda_param_with_default_var;
24238 if (_n == _children_capacity) {
24239 _children_capacity *= 2;
24240 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24241 if (!_new_children) {
24242 p->error_indicator = 1;
24243 PyErr_NoMemory();
24244 D(p->level--);
24245 return NULL;
24246 }
24247 _children = _new_children;
24248 }
24249 _children[_n++] = _res;
24250 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024251 }
24252 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024253 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024255 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024256 if (_n == 0 || p->error_indicator) {
24257 PyMem_Free(_children);
24258 D(p->level--);
24259 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024260 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024261 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24262 if (!_seq) {
24263 PyMem_Free(_children);
24264 p->error_indicator = 1;
24265 PyErr_NoMemory();
24266 D(p->level--);
24267 return NULL;
24268 }
24269 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24270 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024271 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024272 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024273 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024274}
24275
Pablo Galindo835f14f2021-01-31 22:52:56 +000024276// _tmp_137: ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024277static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024278_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024279{
24280 D(p->level++);
24281 if (p->error_indicator) {
24282 D(p->level--);
24283 return NULL;
24284 }
24285 void * _res = NULL;
24286 int _mark = p->mark;
24287 { // ')'
24288 if (p->error_indicator) {
24289 D(p->level--);
24290 return NULL;
24291 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024292 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024293 Token * _literal;
24294 if (
24295 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24296 )
24297 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024298 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024299 _res = _literal;
24300 goto done;
24301 }
24302 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024303 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24305 }
24306 { // ',' (')' | '**')
24307 if (p->error_indicator) {
24308 D(p->level--);
24309 return NULL;
24310 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024311 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024312 Token * _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024313 void *_tmp_159_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024314 if (
24315 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24316 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +000024317 (_tmp_159_var = _tmp_159_rule(p)) // ')' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024318 )
24319 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024320 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000024321 _res = _PyPegen_dummy_name(p, _literal, _tmp_159_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024322 goto done;
24323 }
24324 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024325 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
24327 }
24328 _res = NULL;
24329 done:
24330 D(p->level--);
24331 return _res;
24332}
24333
Pablo Galindo835f14f2021-01-31 22:52:56 +000024334// _tmp_138: ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024335static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024336_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024337{
24338 D(p->level++);
24339 if (p->error_indicator) {
24340 D(p->level--);
24341 return NULL;
24342 }
24343 void * _res = NULL;
24344 int _mark = p->mark;
24345 { // ':'
24346 if (p->error_indicator) {
24347 D(p->level--);
24348 return NULL;
24349 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024350 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024351 Token * _literal;
24352 if (
24353 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24354 )
24355 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024356 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024357 _res = _literal;
24358 goto done;
24359 }
24360 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024361 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
24363 }
24364 { // ',' (':' | '**')
24365 if (p->error_indicator) {
24366 D(p->level--);
24367 return NULL;
24368 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024369 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024370 Token * _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024371 void *_tmp_160_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024372 if (
24373 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24374 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +000024375 (_tmp_160_var = _tmp_160_rule(p)) // ':' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024376 )
24377 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024378 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000024379 _res = _PyPegen_dummy_name(p, _literal, _tmp_160_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024380 goto done;
24381 }
24382 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024383 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
24385 }
24386 _res = NULL;
24387 done:
24388 D(p->level--);
24389 return _res;
24390}
24391
Pablo Galindo58fb1562021-02-02 19:54:22 +000024392// _tmp_139: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024393static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024394_tmp_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024395{
24396 D(p->level++);
24397 if (p->error_indicator) {
24398 D(p->level--);
24399 return NULL;
24400 }
24401 void * _res = NULL;
24402 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024403 { // ','
24404 if (p->error_indicator) {
24405 D(p->level--);
24406 return NULL;
24407 }
24408 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
24409 Token * _literal;
24410 if (
24411 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24412 )
24413 {
24414 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
24415 _res = _literal;
24416 goto done;
24417 }
24418 p->mark = _mark;
24419 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
24421 }
24422 { // ')'
24423 if (p->error_indicator) {
24424 D(p->level--);
24425 return NULL;
24426 }
24427 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
24428 Token * _literal;
24429 if (
24430 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24431 )
24432 {
24433 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
24434 _res = _literal;
24435 goto done;
24436 }
24437 p->mark = _mark;
24438 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24440 }
24441 { // ':'
24442 if (p->error_indicator) {
24443 D(p->level--);
24444 return NULL;
24445 }
24446 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
24447 Token * _literal;
24448 if (
24449 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24450 )
24451 {
24452 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
24453 _res = _literal;
24454 goto done;
24455 }
24456 p->mark = _mark;
24457 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
24459 }
24460 _res = NULL;
24461 done:
24462 D(p->level--);
24463 return _res;
24464}
24465
24466// _loop0_141: ',' (expression ['as' star_target])
24467static asdl_seq *
24468_loop0_141_rule(Parser *p)
24469{
24470 D(p->level++);
24471 if (p->error_indicator) {
24472 D(p->level--);
24473 return NULL;
24474 }
24475 void *_res = NULL;
24476 int _mark = p->mark;
24477 int _start_mark = p->mark;
24478 void **_children = PyMem_Malloc(sizeof(void *));
24479 if (!_children) {
24480 p->error_indicator = 1;
24481 PyErr_NoMemory();
24482 D(p->level--);
24483 return NULL;
24484 }
24485 ssize_t _children_capacity = 1;
24486 ssize_t _n = 0;
24487 { // ',' (expression ['as' star_target])
24488 if (p->error_indicator) {
24489 D(p->level--);
24490 return NULL;
24491 }
24492 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
24493 Token * _literal;
24494 void *elem;
24495 while (
24496 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24497 &&
24498 (elem = _tmp_161_rule(p)) // expression ['as' star_target]
24499 )
24500 {
24501 _res = elem;
24502 if (_res == NULL && PyErr_Occurred()) {
24503 p->error_indicator = 1;
24504 PyMem_Free(_children);
24505 D(p->level--);
24506 return NULL;
24507 }
24508 if (_n == _children_capacity) {
24509 _children_capacity *= 2;
24510 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24511 if (!_new_children) {
24512 p->error_indicator = 1;
24513 PyErr_NoMemory();
24514 D(p->level--);
24515 return NULL;
24516 }
24517 _children = _new_children;
24518 }
24519 _children[_n++] = _res;
24520 _mark = p->mark;
24521 }
24522 p->mark = _mark;
24523 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
24524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
24525 }
24526 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24527 if (!_seq) {
24528 PyMem_Free(_children);
24529 p->error_indicator = 1;
24530 PyErr_NoMemory();
24531 D(p->level--);
24532 return NULL;
24533 }
24534 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24535 PyMem_Free(_children);
24536 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
24537 D(p->level--);
24538 return _seq;
24539}
24540
24541// _gather_140: (expression ['as' star_target]) _loop0_141
24542static asdl_seq *
24543_gather_140_rule(Parser *p)
24544{
24545 D(p->level++);
24546 if (p->error_indicator) {
24547 D(p->level--);
24548 return NULL;
24549 }
24550 asdl_seq * _res = NULL;
24551 int _mark = p->mark;
24552 { // (expression ['as' star_target]) _loop0_141
24553 if (p->error_indicator) {
24554 D(p->level--);
24555 return NULL;
24556 }
24557 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_141"));
24558 void *elem;
24559 asdl_seq * seq;
24560 if (
24561 (elem = _tmp_161_rule(p)) // expression ['as' star_target]
24562 &&
24563 (seq = _loop0_141_rule(p)) // _loop0_141
24564 )
24565 {
24566 D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_141"));
24567 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24568 goto done;
24569 }
24570 p->mark = _mark;
24571 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
24572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_141"));
24573 }
24574 _res = NULL;
24575 done:
24576 D(p->level--);
24577 return _res;
24578}
24579
24580// _loop0_143: ',' (expressions ['as' star_target])
24581static asdl_seq *
24582_loop0_143_rule(Parser *p)
24583{
24584 D(p->level++);
24585 if (p->error_indicator) {
24586 D(p->level--);
24587 return NULL;
24588 }
24589 void *_res = NULL;
24590 int _mark = p->mark;
24591 int _start_mark = p->mark;
24592 void **_children = PyMem_Malloc(sizeof(void *));
24593 if (!_children) {
24594 p->error_indicator = 1;
24595 PyErr_NoMemory();
24596 D(p->level--);
24597 return NULL;
24598 }
24599 ssize_t _children_capacity = 1;
24600 ssize_t _n = 0;
24601 { // ',' (expressions ['as' star_target])
24602 if (p->error_indicator) {
24603 D(p->level--);
24604 return NULL;
24605 }
24606 D(fprintf(stderr, "%*c> _loop0_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
24607 Token * _literal;
24608 void *elem;
24609 while (
24610 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24611 &&
24612 (elem = _tmp_162_rule(p)) // expressions ['as' star_target]
24613 )
24614 {
24615 _res = elem;
24616 if (_res == NULL && PyErr_Occurred()) {
24617 p->error_indicator = 1;
24618 PyMem_Free(_children);
24619 D(p->level--);
24620 return NULL;
24621 }
24622 if (_n == _children_capacity) {
24623 _children_capacity *= 2;
24624 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24625 if (!_new_children) {
24626 p->error_indicator = 1;
24627 PyErr_NoMemory();
24628 D(p->level--);
24629 return NULL;
24630 }
24631 _children = _new_children;
24632 }
24633 _children[_n++] = _res;
24634 _mark = p->mark;
24635 }
24636 p->mark = _mark;
24637 D(fprintf(stderr, "%*c%s _loop0_143[%d-%d]: %s failed!\n", p->level, ' ',
24638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
24639 }
24640 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24641 if (!_seq) {
24642 PyMem_Free(_children);
24643 p->error_indicator = 1;
24644 PyErr_NoMemory();
24645 D(p->level--);
24646 return NULL;
24647 }
24648 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24649 PyMem_Free(_children);
24650 _PyPegen_insert_memo(p, _start_mark, _loop0_143_type, _seq);
24651 D(p->level--);
24652 return _seq;
24653}
24654
24655// _gather_142: (expressions ['as' star_target]) _loop0_143
24656static asdl_seq *
24657_gather_142_rule(Parser *p)
24658{
24659 D(p->level++);
24660 if (p->error_indicator) {
24661 D(p->level--);
24662 return NULL;
24663 }
24664 asdl_seq * _res = NULL;
24665 int _mark = p->mark;
24666 { // (expressions ['as' star_target]) _loop0_143
24667 if (p->error_indicator) {
24668 D(p->level--);
24669 return NULL;
24670 }
24671 D(fprintf(stderr, "%*c> _gather_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_143"));
24672 void *elem;
24673 asdl_seq * seq;
24674 if (
24675 (elem = _tmp_162_rule(p)) // expressions ['as' star_target]
24676 &&
24677 (seq = _loop0_143_rule(p)) // _loop0_143
24678 )
24679 {
24680 D(fprintf(stderr, "%*c+ _gather_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_143"));
24681 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24682 goto done;
24683 }
24684 p->mark = _mark;
24685 D(fprintf(stderr, "%*c%s _gather_142[%d-%d]: %s failed!\n", p->level, ' ',
24686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_143"));
24687 }
24688 _res = NULL;
24689 done:
24690 D(p->level--);
24691 return _res;
24692}
24693
24694// _tmp_144: star_targets '='
24695static void *
24696_tmp_144_rule(Parser *p)
24697{
24698 D(p->level++);
24699 if (p->error_indicator) {
24700 D(p->level--);
24701 return NULL;
24702 }
24703 void * _res = NULL;
24704 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024705 { // star_targets '='
24706 if (p->error_indicator) {
24707 D(p->level--);
24708 return NULL;
24709 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024710 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024711 Token * _literal;
24712 expr_ty z;
24713 if (
24714 (z = star_targets_rule(p)) // star_targets
24715 &&
24716 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24717 )
24718 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024719 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024720 _res = z;
24721 if (_res == NULL && PyErr_Occurred()) {
24722 p->error_indicator = 1;
24723 D(p->level--);
24724 return NULL;
24725 }
24726 goto done;
24727 }
24728 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024729 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24731 }
24732 _res = NULL;
24733 done:
24734 D(p->level--);
24735 return _res;
24736}
24737
Pablo Galindo58fb1562021-02-02 19:54:22 +000024738// _tmp_145: '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024739static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024740_tmp_145_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024741{
24742 D(p->level++);
24743 if (p->error_indicator) {
24744 D(p->level--);
24745 return NULL;
24746 }
24747 void * _res = NULL;
24748 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024749 { // '.'
24750 if (p->error_indicator) {
24751 D(p->level--);
24752 return NULL;
24753 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024754 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024755 Token * _literal;
24756 if (
24757 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24758 )
24759 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024760 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024761 _res = _literal;
24762 goto done;
24763 }
24764 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024765 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24767 }
24768 { // '...'
24769 if (p->error_indicator) {
24770 D(p->level--);
24771 return NULL;
24772 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024773 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024774 Token * _literal;
24775 if (
24776 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24777 )
24778 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024779 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024780 _res = _literal;
24781 goto done;
24782 }
24783 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024784 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24786 }
24787 _res = NULL;
24788 done:
24789 D(p->level--);
24790 return _res;
24791}
24792
Pablo Galindo58fb1562021-02-02 19:54:22 +000024793// _tmp_146: '.' | '...'
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024794static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024795_tmp_146_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024796{
24797 D(p->level++);
24798 if (p->error_indicator) {
24799 D(p->level--);
24800 return NULL;
24801 }
24802 void * _res = NULL;
24803 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024804 { // '.'
24805 if (p->error_indicator) {
24806 D(p->level--);
24807 return NULL;
24808 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024809 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000024810 Token * _literal;
24811 if (
24812 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24813 )
24814 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024815 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000024816 _res = _literal;
24817 goto done;
24818 }
24819 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024820 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000024821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24822 }
24823 { // '...'
24824 if (p->error_indicator) {
24825 D(p->level--);
24826 return NULL;
24827 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024828 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000024829 Token * _literal;
24830 if (
24831 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24832 )
24833 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024834 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000024835 _res = _literal;
24836 goto done;
24837 }
24838 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024839 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000024840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24841 }
24842 _res = NULL;
24843 done:
24844 D(p->level--);
24845 return _res;
24846}
24847
Pablo Galindo58fb1562021-02-02 19:54:22 +000024848// _tmp_147: '@' named_expression NEWLINE
Pablo Galindo835f14f2021-01-31 22:52:56 +000024849static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024850_tmp_147_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000024851{
24852 D(p->level++);
24853 if (p->error_indicator) {
24854 D(p->level--);
24855 return NULL;
24856 }
24857 void * _res = NULL;
24858 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024859 { // '@' named_expression NEWLINE
24860 if (p->error_indicator) {
24861 D(p->level--);
24862 return NULL;
24863 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024864 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024865 Token * _literal;
24866 expr_ty f;
24867 Token * newline_var;
24868 if (
24869 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
24870 &&
24871 (f = named_expression_rule(p)) // named_expression
24872 &&
24873 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24874 )
24875 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024876 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024877 _res = f;
24878 if (_res == NULL && PyErr_Occurred()) {
24879 p->error_indicator = 1;
24880 D(p->level--);
24881 return NULL;
24882 }
24883 goto done;
24884 }
24885 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024886 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
24888 }
24889 _res = NULL;
24890 done:
24891 D(p->level--);
24892 return _res;
24893}
24894
Pablo Galindo58fb1562021-02-02 19:54:22 +000024895// _tmp_148: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024896static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024897_tmp_148_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024898{
24899 D(p->level++);
24900 if (p->error_indicator) {
24901 D(p->level--);
24902 return NULL;
24903 }
24904 void * _res = NULL;
24905 int _mark = p->mark;
24906 { // ',' star_expression
24907 if (p->error_indicator) {
24908 D(p->level--);
24909 return NULL;
24910 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024911 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024912 Token * _literal;
24913 expr_ty c;
24914 if (
24915 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24916 &&
24917 (c = star_expression_rule(p)) // star_expression
24918 )
24919 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024920 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024921 _res = c;
24922 if (_res == NULL && PyErr_Occurred()) {
24923 p->error_indicator = 1;
24924 D(p->level--);
24925 return NULL;
24926 }
24927 goto done;
24928 }
24929 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024930 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
24932 }
24933 _res = NULL;
24934 done:
24935 D(p->level--);
24936 return _res;
24937}
24938
Pablo Galindo58fb1562021-02-02 19:54:22 +000024939// _tmp_149: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024940static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024941_tmp_149_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024942{
24943 D(p->level++);
24944 if (p->error_indicator) {
24945 D(p->level--);
24946 return NULL;
24947 }
24948 void * _res = NULL;
24949 int _mark = p->mark;
24950 { // ',' expression
24951 if (p->error_indicator) {
24952 D(p->level--);
24953 return NULL;
24954 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024955 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024956 Token * _literal;
24957 expr_ty c;
24958 if (
24959 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24960 &&
24961 (c = expression_rule(p)) // expression
24962 )
24963 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024964 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024965 _res = c;
24966 if (_res == NULL && PyErr_Occurred()) {
24967 p->error_indicator = 1;
24968 D(p->level--);
24969 return NULL;
24970 }
24971 goto done;
24972 }
24973 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024974 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
24976 }
24977 _res = NULL;
24978 done:
24979 D(p->level--);
24980 return _res;
24981}
24982
Pablo Galindo58fb1562021-02-02 19:54:22 +000024983// _tmp_150: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024984static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024985_tmp_150_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024986{
24987 D(p->level++);
24988 if (p->error_indicator) {
24989 D(p->level--);
24990 return NULL;
24991 }
24992 void * _res = NULL;
24993 int _mark = p->mark;
24994 { // 'or' conjunction
24995 if (p->error_indicator) {
24996 D(p->level--);
24997 return NULL;
24998 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024999 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025000 Token * _keyword;
25001 expr_ty c;
25002 if (
25003 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
25004 &&
25005 (c = conjunction_rule(p)) // conjunction
25006 )
25007 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025008 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025009 _res = c;
25010 if (_res == NULL && PyErr_Occurred()) {
25011 p->error_indicator = 1;
25012 D(p->level--);
25013 return NULL;
25014 }
25015 goto done;
25016 }
25017 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025018 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
25020 }
25021 _res = NULL;
25022 done:
25023 D(p->level--);
25024 return _res;
25025}
25026
Pablo Galindo58fb1562021-02-02 19:54:22 +000025027// _tmp_151: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025028static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025029_tmp_151_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025030{
25031 D(p->level++);
25032 if (p->error_indicator) {
25033 D(p->level--);
25034 return NULL;
25035 }
25036 void * _res = NULL;
25037 int _mark = p->mark;
25038 { // 'and' inversion
25039 if (p->error_indicator) {
25040 D(p->level--);
25041 return NULL;
25042 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025043 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025044 Token * _keyword;
25045 expr_ty c;
25046 if (
25047 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
25048 &&
25049 (c = inversion_rule(p)) // inversion
25050 )
25051 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025052 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025053 _res = c;
25054 if (_res == NULL && PyErr_Occurred()) {
25055 p->error_indicator = 1;
25056 D(p->level--);
25057 return NULL;
25058 }
25059 goto done;
25060 }
25061 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025062 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025064 }
25065 _res = NULL;
25066 done:
25067 D(p->level--);
25068 return _res;
25069}
25070
Pablo Galindo58fb1562021-02-02 19:54:22 +000025071// _tmp_152: 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025072static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025073_tmp_152_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025074{
25075 D(p->level++);
25076 if (p->error_indicator) {
25077 D(p->level--);
25078 return NULL;
25079 }
25080 void * _res = NULL;
25081 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025082 { // 'if' disjunction
25083 if (p->error_indicator) {
25084 D(p->level--);
25085 return NULL;
25086 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025087 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025088 Token * _keyword;
25089 expr_ty z;
25090 if (
25091 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
25092 &&
25093 (z = disjunction_rule(p)) // disjunction
25094 )
25095 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025096 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025097 _res = z;
25098 if (_res == NULL && PyErr_Occurred()) {
25099 p->error_indicator = 1;
25100 D(p->level--);
25101 return NULL;
25102 }
25103 goto done;
25104 }
25105 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025106 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
25108 }
25109 _res = NULL;
25110 done:
25111 D(p->level--);
25112 return _res;
25113}
25114
Pablo Galindo58fb1562021-02-02 19:54:22 +000025115// _tmp_153: 'if' disjunction
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025116static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025117_tmp_153_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025118{
25119 D(p->level++);
25120 if (p->error_indicator) {
25121 D(p->level--);
25122 return NULL;
25123 }
25124 void * _res = NULL;
25125 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000025126 { // 'if' disjunction
25127 if (p->error_indicator) {
25128 D(p->level--);
25129 return NULL;
25130 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025131 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025132 Token * _keyword;
25133 expr_ty z;
25134 if (
25135 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
25136 &&
25137 (z = disjunction_rule(p)) // disjunction
25138 )
25139 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025140 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025141 _res = z;
25142 if (_res == NULL && PyErr_Occurred()) {
25143 p->error_indicator = 1;
25144 D(p->level--);
25145 return NULL;
25146 }
25147 goto done;
25148 }
25149 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025150 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
25152 }
25153 _res = NULL;
25154 done:
25155 D(p->level--);
25156 return _res;
25157}
25158
Pablo Galindo58fb1562021-02-02 19:54:22 +000025159// _tmp_154: starred_expression | named_expression !'='
Pablo Galindo835f14f2021-01-31 22:52:56 +000025160static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025161_tmp_154_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000025162{
25163 D(p->level++);
25164 if (p->error_indicator) {
25165 D(p->level--);
25166 return NULL;
25167 }
25168 void * _res = NULL;
25169 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010025170 { // starred_expression
25171 if (p->error_indicator) {
25172 D(p->level--);
25173 return NULL;
25174 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025175 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025176 expr_ty starred_expression_var;
25177 if (
25178 (starred_expression_var = starred_expression_rule(p)) // starred_expression
25179 )
25180 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025181 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025182 _res = starred_expression_var;
25183 goto done;
25184 }
25185 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025186 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010025187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
25188 }
25189 { // named_expression !'='
25190 if (p->error_indicator) {
25191 D(p->level--);
25192 return NULL;
25193 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025194 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025195 expr_ty named_expression_var;
25196 if (
25197 (named_expression_var = named_expression_rule(p)) // named_expression
25198 &&
25199 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
25200 )
25201 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025202 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025203 _res = named_expression_var;
25204 goto done;
25205 }
25206 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025207 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025209 }
25210 _res = NULL;
25211 done:
25212 D(p->level--);
25213 return _res;
25214}
25215
Pablo Galindo58fb1562021-02-02 19:54:22 +000025216// _tmp_155: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025217static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025218_tmp_155_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025219{
25220 D(p->level++);
25221 if (p->error_indicator) {
25222 D(p->level--);
25223 return NULL;
25224 }
25225 void * _res = NULL;
25226 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025227 { // ',' star_target
25228 if (p->error_indicator) {
25229 D(p->level--);
25230 return NULL;
25231 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025232 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025233 Token * _literal;
25234 expr_ty c;
25235 if (
25236 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25237 &&
25238 (c = star_target_rule(p)) // star_target
25239 )
25240 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025241 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025242 _res = c;
25243 if (_res == NULL && PyErr_Occurred()) {
25244 p->error_indicator = 1;
25245 D(p->level--);
25246 return NULL;
25247 }
25248 goto done;
25249 }
25250 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025251 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
25253 }
25254 _res = NULL;
25255 done:
25256 D(p->level--);
25257 return _res;
25258}
25259
Pablo Galindo58fb1562021-02-02 19:54:22 +000025260// _tmp_156: ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025261static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025262_tmp_156_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025263{
25264 D(p->level++);
25265 if (p->error_indicator) {
25266 D(p->level--);
25267 return NULL;
25268 }
25269 void * _res = NULL;
25270 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000025271 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025272 if (p->error_indicator) {
25273 D(p->level--);
25274 return NULL;
25275 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025276 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025277 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000025278 expr_ty c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025279 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000025280 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025281 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000025282 (c = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025283 )
25284 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025285 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025286 _res = c;
25287 if (_res == NULL && PyErr_Occurred()) {
25288 p->error_indicator = 1;
25289 D(p->level--);
25290 return NULL;
25291 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025292 goto done;
25293 }
25294 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025295 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025297 }
25298 _res = NULL;
25299 done:
25300 D(p->level--);
25301 return _res;
25302}
25303
Pablo Galindo58fb1562021-02-02 19:54:22 +000025304// _tmp_157: star_targets '='
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025305static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025306_tmp_157_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025307{
25308 D(p->level++);
25309 if (p->error_indicator) {
25310 D(p->level--);
25311 return NULL;
25312 }
25313 void * _res = NULL;
25314 int _mark = p->mark;
25315 { // star_targets '='
25316 if (p->error_indicator) {
25317 D(p->level--);
25318 return NULL;
25319 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025320 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025321 Token * _literal;
25322 expr_ty star_targets_var;
25323 if (
25324 (star_targets_var = star_targets_rule(p)) // star_targets
25325 &&
25326 (_literal = _PyPegen_expect_token(p, 22)) // token='='
25327 )
25328 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025329 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025330 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
25331 goto done;
25332 }
25333 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025334 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
25336 }
25337 _res = NULL;
25338 done:
25339 D(p->level--);
25340 return _res;
25341}
25342
Pablo Galindo58fb1562021-02-02 19:54:22 +000025343// _tmp_158: star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025344static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025345_tmp_158_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025346{
25347 D(p->level++);
25348 if (p->error_indicator) {
25349 D(p->level--);
25350 return NULL;
25351 }
25352 void * _res = NULL;
25353 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000025354 { // star_targets '='
25355 if (p->error_indicator) {
25356 D(p->level--);
25357 return NULL;
25358 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025359 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025360 Token * _literal;
25361 expr_ty star_targets_var;
25362 if (
25363 (star_targets_var = star_targets_rule(p)) // star_targets
25364 &&
25365 (_literal = _PyPegen_expect_token(p, 22)) // token='='
25366 )
25367 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025368 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025369 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
25370 goto done;
25371 }
25372 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025373 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
25375 }
25376 _res = NULL;
25377 done:
25378 D(p->level--);
25379 return _res;
25380}
25381
Pablo Galindo58fb1562021-02-02 19:54:22 +000025382// _tmp_159: ')' | '**'
Pablo Galindo835f14f2021-01-31 22:52:56 +000025383static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025384_tmp_159_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000025385{
25386 D(p->level++);
25387 if (p->error_indicator) {
25388 D(p->level--);
25389 return NULL;
25390 }
25391 void * _res = NULL;
25392 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025393 { // ')'
25394 if (p->error_indicator) {
25395 D(p->level--);
25396 return NULL;
25397 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025398 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025399 Token * _literal;
25400 if (
25401 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
25402 )
25403 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025404 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025405 _res = _literal;
25406 goto done;
25407 }
25408 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025409 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025411 }
25412 { // '**'
25413 if (p->error_indicator) {
25414 D(p->level--);
25415 return NULL;
25416 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025417 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025418 Token * _literal;
25419 if (
25420 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
25421 )
25422 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025423 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025424 _res = _literal;
25425 goto done;
25426 }
25427 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025428 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
25430 }
25431 _res = NULL;
25432 done:
25433 D(p->level--);
25434 return _res;
25435}
25436
Pablo Galindo58fb1562021-02-02 19:54:22 +000025437// _tmp_160: ':' | '**'
Pablo Galindo835f14f2021-01-31 22:52:56 +000025438static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025439_tmp_160_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000025440{
25441 D(p->level++);
25442 if (p->error_indicator) {
25443 D(p->level--);
25444 return NULL;
25445 }
25446 void * _res = NULL;
25447 int _mark = p->mark;
25448 { // ':'
25449 if (p->error_indicator) {
25450 D(p->level--);
25451 return NULL;
25452 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025453 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025454 Token * _literal;
25455 if (
25456 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
25457 )
25458 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025459 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025460 _res = _literal;
25461 goto done;
25462 }
25463 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025464 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
25466 }
25467 { // '**'
25468 if (p->error_indicator) {
25469 D(p->level--);
25470 return NULL;
25471 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025472 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025473 Token * _literal;
25474 if (
25475 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
25476 )
25477 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025478 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025479 _res = _literal;
25480 goto done;
25481 }
25482 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025483 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
25485 }
25486 _res = NULL;
25487 done:
25488 D(p->level--);
25489 return _res;
25490}
25491
Pablo Galindo58fb1562021-02-02 19:54:22 +000025492// _tmp_161: expression ['as' star_target]
25493static void *
25494_tmp_161_rule(Parser *p)
25495{
25496 D(p->level++);
25497 if (p->error_indicator) {
25498 D(p->level--);
25499 return NULL;
25500 }
25501 void * _res = NULL;
25502 int _mark = p->mark;
25503 { // expression ['as' star_target]
25504 if (p->error_indicator) {
25505 D(p->level--);
25506 return NULL;
25507 }
25508 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
25509 void *_opt_var;
25510 UNUSED(_opt_var); // Silence compiler warnings
25511 expr_ty expression_var;
25512 if (
25513 (expression_var = expression_rule(p)) // expression
25514 &&
25515 (_opt_var = _tmp_163_rule(p), 1) // ['as' star_target]
25516 )
25517 {
25518 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
25519 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
25520 goto done;
25521 }
25522 p->mark = _mark;
25523 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
25524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
25525 }
25526 _res = NULL;
25527 done:
25528 D(p->level--);
25529 return _res;
25530}
25531
25532// _tmp_162: expressions ['as' star_target]
25533static void *
25534_tmp_162_rule(Parser *p)
25535{
25536 D(p->level++);
25537 if (p->error_indicator) {
25538 D(p->level--);
25539 return NULL;
25540 }
25541 void * _res = NULL;
25542 int _mark = p->mark;
25543 { // expressions ['as' star_target]
25544 if (p->error_indicator) {
25545 D(p->level--);
25546 return NULL;
25547 }
25548 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
25549 void *_opt_var;
25550 UNUSED(_opt_var); // Silence compiler warnings
25551 expr_ty expressions_var;
25552 if (
25553 (expressions_var = expressions_rule(p)) // expressions
25554 &&
25555 (_opt_var = _tmp_164_rule(p), 1) // ['as' star_target]
25556 )
25557 {
25558 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
25559 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
25560 goto done;
25561 }
25562 p->mark = _mark;
25563 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
25564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
25565 }
25566 _res = NULL;
25567 done:
25568 D(p->level--);
25569 return _res;
25570}
25571
25572// _tmp_163: 'as' star_target
25573static void *
25574_tmp_163_rule(Parser *p)
25575{
25576 D(p->level++);
25577 if (p->error_indicator) {
25578 D(p->level--);
25579 return NULL;
25580 }
25581 void * _res = NULL;
25582 int _mark = p->mark;
25583 { // 'as' star_target
25584 if (p->error_indicator) {
25585 D(p->level--);
25586 return NULL;
25587 }
25588 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
25589 Token * _keyword;
25590 expr_ty star_target_var;
25591 if (
25592 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
25593 &&
25594 (star_target_var = star_target_rule(p)) // star_target
25595 )
25596 {
25597 D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
25598 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
25599 goto done;
25600 }
25601 p->mark = _mark;
25602 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
25603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
25604 }
25605 _res = NULL;
25606 done:
25607 D(p->level--);
25608 return _res;
25609}
25610
25611// _tmp_164: 'as' star_target
25612static void *
25613_tmp_164_rule(Parser *p)
25614{
25615 D(p->level++);
25616 if (p->error_indicator) {
25617 D(p->level--);
25618 return NULL;
25619 }
25620 void * _res = NULL;
25621 int _mark = p->mark;
25622 { // 'as' star_target
25623 if (p->error_indicator) {
25624 D(p->level--);
25625 return NULL;
25626 }
25627 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
25628 Token * _keyword;
25629 expr_ty star_target_var;
25630 if (
25631 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
25632 &&
25633 (star_target_var = star_target_rule(p)) // star_target
25634 )
25635 {
25636 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
25637 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
25638 goto done;
25639 }
25640 p->mark = _mark;
25641 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
25642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
25643 }
25644 _res = NULL;
25645 done:
25646 D(p->level--);
25647 return _res;
25648}
25649
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025650void *
25651_PyPegen_parse(Parser *p)
25652{
25653 // Initialize keywords
25654 p->keywords = reserved_keywords;
25655 p->n_keyword_lists = n_keyword_lists;
25656
25657 // Run parser
25658 void *result = NULL;
25659 if (p->start_rule == Py_file_input) {
25660 result = file_rule(p);
25661 } else if (p->start_rule == Py_single_input) {
25662 result = interactive_rule(p);
25663 } else if (p->start_rule == Py_eval_input) {
25664 result = eval_rule(p);
25665 } else if (p->start_rule == Py_func_type_input) {
25666 result = func_type_rule(p);
25667 } else if (p->start_rule == Py_fstring_input) {
25668 result = fstring_rule(p);
25669 }
25670
25671 return result;
25672}
25673
25674// The end