blob: 2559969f86e516cac738751ccd0f0a404163e149 [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
198#define star_targets_seq_type 1129
199#define star_target_type 1130
200#define star_atom_type 1131
201#define single_target_type 1132
202#define single_subscript_attribute_target_type 1133
203#define del_targets_type 1134
204#define del_target_type 1135
205#define del_t_atom_type 1136
206#define targets_type 1137
207#define target_type 1138
208#define t_primary_type 1139 // Left-recursive
209#define t_lookahead_type 1140
210#define t_atom_type 1141
211#define invalid_arguments_type 1142
212#define invalid_kwarg_type 1143
213#define invalid_named_expression_type 1144
214#define invalid_assignment_type 1145
215#define invalid_ann_assign_target_type 1146
216#define invalid_del_stmt_type 1147
217#define invalid_block_type 1148
218#define invalid_primary_type 1149 // Left-recursive
219#define invalid_comprehension_type 1150
220#define invalid_dict_comprehension_type 1151
221#define invalid_parameters_type 1152
222#define invalid_lambda_parameters_type 1153
223#define invalid_star_etc_type 1154
224#define invalid_lambda_star_etc_type 1155
225#define invalid_double_type_comments_type 1156
226#define invalid_with_item_type 1157
227#define invalid_for_target_type 1158
228#define invalid_group_type 1159
229#define invalid_import_from_targets_type 1160
230#define _loop0_1_type 1161
231#define _loop0_2_type 1162
232#define _loop0_4_type 1163
233#define _gather_3_type 1164
234#define _loop0_6_type 1165
235#define _gather_5_type 1166
236#define _loop0_8_type 1167
237#define _gather_7_type 1168
238#define _loop0_10_type 1169
239#define _gather_9_type 1170
240#define _loop1_11_type 1171
241#define _loop0_13_type 1172
242#define _gather_12_type 1173
243#define _tmp_14_type 1174
244#define _tmp_15_type 1175
245#define _tmp_16_type 1176
246#define _tmp_17_type 1177
247#define _tmp_18_type 1178
248#define _tmp_19_type 1179
249#define _tmp_20_type 1180
250#define _tmp_21_type 1181
251#define _loop1_22_type 1182
252#define _tmp_23_type 1183
253#define _tmp_24_type 1184
254#define _loop0_26_type 1185
255#define _gather_25_type 1186
256#define _loop0_28_type 1187
257#define _gather_27_type 1188
258#define _tmp_29_type 1189
259#define _tmp_30_type 1190
260#define _loop0_31_type 1191
261#define _loop1_32_type 1192
262#define _loop0_34_type 1193
263#define _gather_33_type 1194
264#define _tmp_35_type 1195
265#define _loop0_37_type 1196
266#define _gather_36_type 1197
267#define _tmp_38_type 1198
268#define _loop0_40_type 1199
269#define _gather_39_type 1200
270#define _loop0_42_type 1201
271#define _gather_41_type 1202
272#define _loop0_44_type 1203
273#define _gather_43_type 1204
274#define _loop0_46_type 1205
275#define _gather_45_type 1206
276#define _tmp_47_type 1207
277#define _loop1_48_type 1208
278#define _tmp_49_type 1209
279#define _tmp_50_type 1210
280#define _tmp_51_type 1211
281#define _tmp_52_type 1212
282#define _tmp_53_type 1213
283#define _loop0_54_type 1214
284#define _loop0_55_type 1215
285#define _loop0_56_type 1216
286#define _loop1_57_type 1217
287#define _loop0_58_type 1218
288#define _loop1_59_type 1219
289#define _loop1_60_type 1220
290#define _loop1_61_type 1221
291#define _loop0_62_type 1222
292#define _loop1_63_type 1223
293#define _loop0_64_type 1224
294#define _loop1_65_type 1225
295#define _loop0_66_type 1226
296#define _loop1_67_type 1227
297#define _loop1_68_type 1228
298#define _tmp_69_type 1229
299#define _loop1_70_type 1230
300#define _loop0_72_type 1231
301#define _gather_71_type 1232
302#define _loop1_73_type 1233
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200303#define _loop0_74_type 1234
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000304#define _loop0_75_type 1235
305#define _loop0_76_type 1236
306#define _loop1_77_type 1237
307#define _loop0_78_type 1238
308#define _loop1_79_type 1239
309#define _loop1_80_type 1240
310#define _loop1_81_type 1241
311#define _loop0_82_type 1242
312#define _loop1_83_type 1243
313#define _loop0_84_type 1244
314#define _loop1_85_type 1245
315#define _loop0_86_type 1246
316#define _loop1_87_type 1247
317#define _loop1_88_type 1248
318#define _loop1_89_type 1249
319#define _loop1_90_type 1250
320#define _tmp_91_type 1251
321#define _loop0_93_type 1252
322#define _gather_92_type 1253
323#define _tmp_94_type 1254
324#define _tmp_95_type 1255
325#define _tmp_96_type 1256
326#define _tmp_97_type 1257
327#define _loop1_98_type 1258
328#define _tmp_99_type 1259
329#define _tmp_100_type 1260
330#define _loop0_102_type 1261
331#define _gather_101_type 1262
332#define _loop1_103_type 1263
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200333#define _loop0_104_type 1264
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000334#define _loop0_105_type 1265
335#define _loop0_107_type 1266
336#define _gather_106_type 1267
337#define _tmp_108_type 1268
338#define _loop0_110_type 1269
339#define _gather_109_type 1270
340#define _loop0_112_type 1271
341#define _gather_111_type 1272
342#define _loop0_114_type 1273
343#define _gather_113_type 1274
344#define _loop0_116_type 1275
345#define _gather_115_type 1276
346#define _loop0_117_type 1277
347#define _loop0_119_type 1278
348#define _gather_118_type 1279
349#define _tmp_120_type 1280
350#define _loop0_122_type 1281
351#define _gather_121_type 1282
352#define _loop0_124_type 1283
353#define _gather_123_type 1284
354#define _tmp_125_type 1285
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200355#define _loop0_126_type 1286
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000356#define _loop0_127_type 1287
357#define _loop0_128_type 1288
358#define _tmp_129_type 1289
359#define _tmp_130_type 1290
360#define _loop0_131_type 1291
361#define _tmp_132_type 1292
362#define _loop0_133_type 1293
363#define _tmp_134_type 1294
364#define _tmp_135_type 1295
365#define _tmp_136_type 1296
366#define _tmp_137_type 1297
367#define _tmp_138_type 1298
368#define _tmp_139_type 1299
369#define _tmp_140_type 1300
370#define _tmp_141_type 1301
371#define _tmp_142_type 1302
372#define _tmp_143_type 1303
373#define _tmp_144_type 1304
374#define _tmp_145_type 1305
375#define _tmp_146_type 1306
376#define _tmp_147_type 1307
377#define _tmp_148_type 1308
378#define _tmp_149_type 1309
379#define _tmp_150_type 1310
380#define _loop1_151_type 1311
381#define _loop1_152_type 1312
382#define _tmp_153_type 1313
383#define _tmp_154_type 1314
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100384
385static mod_ty file_rule(Parser *p);
386static mod_ty interactive_rule(Parser *p);
387static mod_ty eval_rule(Parser *p);
388static mod_ty func_type_rule(Parser *p);
389static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100390static asdl_expr_seq* type_expressions_rule(Parser *p);
391static asdl_stmt_seq* statements_rule(Parser *p);
392static asdl_stmt_seq* statement_rule(Parser *p);
393static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000394static asdl_stmt_seq* simple_stmts_rule(Parser *p);
395static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100396static stmt_ty compound_stmt_rule(Parser *p);
397static stmt_ty assignment_rule(Parser *p);
398static AugOperator* augassign_rule(Parser *p);
399static stmt_ty global_stmt_rule(Parser *p);
400static stmt_ty nonlocal_stmt_rule(Parser *p);
401static stmt_ty yield_stmt_rule(Parser *p);
402static stmt_ty assert_stmt_rule(Parser *p);
403static stmt_ty del_stmt_rule(Parser *p);
404static stmt_ty import_stmt_rule(Parser *p);
405static stmt_ty import_name_rule(Parser *p);
406static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100407static asdl_alias_seq* import_from_targets_rule(Parser *p);
408static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100409static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100410static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100411static alias_ty dotted_as_name_rule(Parser *p);
412static expr_ty dotted_name_rule(Parser *p);
413static stmt_ty if_stmt_rule(Parser *p);
414static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100415static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100416static stmt_ty while_stmt_rule(Parser *p);
417static stmt_ty for_stmt_rule(Parser *p);
418static stmt_ty with_stmt_rule(Parser *p);
419static withitem_ty with_item_rule(Parser *p);
420static stmt_ty try_stmt_rule(Parser *p);
421static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100422static asdl_stmt_seq* finally_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100423static stmt_ty return_stmt_rule(Parser *p);
424static stmt_ty raise_stmt_rule(Parser *p);
425static stmt_ty function_def_rule(Parser *p);
426static stmt_ty function_def_raw_rule(Parser *p);
427static Token* func_type_comment_rule(Parser *p);
428static arguments_ty params_rule(Parser *p);
429static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100430static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100431static SlashWithDefault* slash_with_default_rule(Parser *p);
432static StarEtc* star_etc_rule(Parser *p);
433static arg_ty kwds_rule(Parser *p);
434static arg_ty param_no_default_rule(Parser *p);
435static NameDefaultPair* param_with_default_rule(Parser *p);
436static NameDefaultPair* param_maybe_default_rule(Parser *p);
437static arg_ty param_rule(Parser *p);
438static expr_ty annotation_rule(Parser *p);
439static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100440static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100441static stmt_ty class_def_rule(Parser *p);
442static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100443static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100444static expr_ty star_expressions_rule(Parser *p);
445static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100446static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100447static expr_ty star_named_expression_rule(Parser *p);
448static expr_ty named_expression_rule(Parser *p);
449static expr_ty annotated_rhs_rule(Parser *p);
450static expr_ty expressions_rule(Parser *p);
451static expr_ty expression_rule(Parser *p);
452static expr_ty lambdef_rule(Parser *p);
453static arguments_ty lambda_params_rule(Parser *p);
454static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100455static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100456static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
457static StarEtc* lambda_star_etc_rule(Parser *p);
458static arg_ty lambda_kwds_rule(Parser *p);
459static arg_ty lambda_param_no_default_rule(Parser *p);
460static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
461static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
462static arg_ty lambda_param_rule(Parser *p);
463static expr_ty disjunction_rule(Parser *p);
464static expr_ty conjunction_rule(Parser *p);
465static expr_ty inversion_rule(Parser *p);
466static expr_ty comparison_rule(Parser *p);
467static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
468static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
469static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
470static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
471static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
472static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
473static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
474static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
475static CmpopExprPair* in_bitwise_or_rule(Parser *p);
476static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
477static CmpopExprPair* is_bitwise_or_rule(Parser *p);
478static expr_ty bitwise_or_rule(Parser *p);
479static expr_ty bitwise_xor_rule(Parser *p);
480static expr_ty bitwise_and_rule(Parser *p);
481static expr_ty shift_expr_rule(Parser *p);
482static expr_ty sum_rule(Parser *p);
483static expr_ty term_rule(Parser *p);
484static expr_ty factor_rule(Parser *p);
485static expr_ty power_rule(Parser *p);
486static expr_ty await_primary_rule(Parser *p);
487static expr_ty primary_rule(Parser *p);
488static expr_ty slices_rule(Parser *p);
489static expr_ty slice_rule(Parser *p);
490static expr_ty atom_rule(Parser *p);
491static expr_ty strings_rule(Parser *p);
492static expr_ty list_rule(Parser *p);
493static expr_ty listcomp_rule(Parser *p);
494static expr_ty tuple_rule(Parser *p);
495static expr_ty group_rule(Parser *p);
496static expr_ty genexp_rule(Parser *p);
497static expr_ty set_rule(Parser *p);
498static expr_ty setcomp_rule(Parser *p);
499static expr_ty dict_rule(Parser *p);
500static expr_ty dictcomp_rule(Parser *p);
501static asdl_seq* double_starred_kvpairs_rule(Parser *p);
502static KeyValuePair* double_starred_kvpair_rule(Parser *p);
503static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100504static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100505static comprehension_ty for_if_clause_rule(Parser *p);
506static expr_ty yield_expr_rule(Parser *p);
507static expr_ty arguments_rule(Parser *p);
508static expr_ty args_rule(Parser *p);
509static asdl_seq* kwargs_rule(Parser *p);
510static expr_ty starred_expression_rule(Parser *p);
511static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
512static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
513static expr_ty star_targets_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100514static asdl_expr_seq* star_targets_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100515static expr_ty star_target_rule(Parser *p);
516static expr_ty star_atom_rule(Parser *p);
517static expr_ty single_target_rule(Parser *p);
518static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100519static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100520static expr_ty del_target_rule(Parser *p);
521static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100522static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100523static expr_ty target_rule(Parser *p);
524static expr_ty t_primary_rule(Parser *p);
525static void *t_lookahead_rule(Parser *p);
526static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200527static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100528static void *invalid_kwarg_rule(Parser *p);
529static void *invalid_named_expression_rule(Parser *p);
530static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300531static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300532static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100533static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200534static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100535static void *invalid_comprehension_rule(Parser *p);
536static void *invalid_dict_comprehension_rule(Parser *p);
537static void *invalid_parameters_rule(Parser *p);
538static void *invalid_lambda_parameters_rule(Parser *p);
539static void *invalid_star_etc_rule(Parser *p);
540static void *invalid_lambda_star_etc_rule(Parser *p);
541static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300542static void *invalid_with_item_rule(Parser *p);
543static void *invalid_for_target_rule(Parser *p);
544static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100545static void *invalid_import_from_targets_rule(Parser *p);
546static asdl_seq *_loop0_1_rule(Parser *p);
547static asdl_seq *_loop0_2_rule(Parser *p);
548static asdl_seq *_loop0_4_rule(Parser *p);
549static asdl_seq *_gather_3_rule(Parser *p);
550static asdl_seq *_loop0_6_rule(Parser *p);
551static asdl_seq *_gather_5_rule(Parser *p);
552static asdl_seq *_loop0_8_rule(Parser *p);
553static asdl_seq *_gather_7_rule(Parser *p);
554static asdl_seq *_loop0_10_rule(Parser *p);
555static asdl_seq *_gather_9_rule(Parser *p);
556static asdl_seq *_loop1_11_rule(Parser *p);
557static asdl_seq *_loop0_13_rule(Parser *p);
558static asdl_seq *_gather_12_rule(Parser *p);
559static void *_tmp_14_rule(Parser *p);
560static void *_tmp_15_rule(Parser *p);
561static void *_tmp_16_rule(Parser *p);
562static void *_tmp_17_rule(Parser *p);
563static void *_tmp_18_rule(Parser *p);
564static void *_tmp_19_rule(Parser *p);
565static void *_tmp_20_rule(Parser *p);
566static void *_tmp_21_rule(Parser *p);
567static asdl_seq *_loop1_22_rule(Parser *p);
568static void *_tmp_23_rule(Parser *p);
569static void *_tmp_24_rule(Parser *p);
570static asdl_seq *_loop0_26_rule(Parser *p);
571static asdl_seq *_gather_25_rule(Parser *p);
572static asdl_seq *_loop0_28_rule(Parser *p);
573static asdl_seq *_gather_27_rule(Parser *p);
574static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300575static void *_tmp_30_rule(Parser *p);
576static asdl_seq *_loop0_31_rule(Parser *p);
577static asdl_seq *_loop1_32_rule(Parser *p);
578static asdl_seq *_loop0_34_rule(Parser *p);
579static asdl_seq *_gather_33_rule(Parser *p);
580static void *_tmp_35_rule(Parser *p);
581static asdl_seq *_loop0_37_rule(Parser *p);
582static asdl_seq *_gather_36_rule(Parser *p);
583static void *_tmp_38_rule(Parser *p);
584static asdl_seq *_loop0_40_rule(Parser *p);
585static asdl_seq *_gather_39_rule(Parser *p);
586static asdl_seq *_loop0_42_rule(Parser *p);
587static asdl_seq *_gather_41_rule(Parser *p);
588static asdl_seq *_loop0_44_rule(Parser *p);
589static asdl_seq *_gather_43_rule(Parser *p);
590static asdl_seq *_loop0_46_rule(Parser *p);
591static asdl_seq *_gather_45_rule(Parser *p);
592static void *_tmp_47_rule(Parser *p);
593static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100594static void *_tmp_49_rule(Parser *p);
595static void *_tmp_50_rule(Parser *p);
596static void *_tmp_51_rule(Parser *p);
597static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300598static void *_tmp_53_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100599static asdl_seq *_loop0_54_rule(Parser *p);
600static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300601static asdl_seq *_loop0_56_rule(Parser *p);
602static asdl_seq *_loop1_57_rule(Parser *p);
603static asdl_seq *_loop0_58_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100604static asdl_seq *_loop1_59_rule(Parser *p);
605static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300606static asdl_seq *_loop1_61_rule(Parser *p);
607static asdl_seq *_loop0_62_rule(Parser *p);
608static asdl_seq *_loop1_63_rule(Parser *p);
609static asdl_seq *_loop0_64_rule(Parser *p);
610static asdl_seq *_loop1_65_rule(Parser *p);
611static asdl_seq *_loop0_66_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100612static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300613static asdl_seq *_loop1_68_rule(Parser *p);
614static void *_tmp_69_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000615static asdl_seq *_loop1_70_rule(Parser *p);
616static asdl_seq *_loop0_72_rule(Parser *p);
617static asdl_seq *_gather_71_rule(Parser *p);
618static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300619static asdl_seq *_loop0_74_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000620static asdl_seq *_loop0_75_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100621static asdl_seq *_loop0_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000622static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300623static asdl_seq *_loop0_78_rule(Parser *p);
624static asdl_seq *_loop1_79_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000625static asdl_seq *_loop1_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100626static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000627static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300628static asdl_seq *_loop1_83_rule(Parser *p);
629static asdl_seq *_loop0_84_rule(Parser *p);
630static asdl_seq *_loop1_85_rule(Parser *p);
631static asdl_seq *_loop0_86_rule(Parser *p);
632static asdl_seq *_loop1_87_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000633static asdl_seq *_loop1_88_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100634static asdl_seq *_loop1_89_rule(Parser *p);
635static asdl_seq *_loop1_90_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000636static void *_tmp_91_rule(Parser *p);
637static asdl_seq *_loop0_93_rule(Parser *p);
638static asdl_seq *_gather_92_rule(Parser *p);
639static void *_tmp_94_rule(Parser *p);
640static void *_tmp_95_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100641static void *_tmp_96_rule(Parser *p);
642static void *_tmp_97_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000643static asdl_seq *_loop1_98_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300644static void *_tmp_99_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000645static void *_tmp_100_rule(Parser *p);
646static asdl_seq *_loop0_102_rule(Parser *p);
647static asdl_seq *_gather_101_rule(Parser *p);
648static asdl_seq *_loop1_103_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300649static asdl_seq *_loop0_104_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000650static asdl_seq *_loop0_105_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300651static asdl_seq *_loop0_107_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000652static asdl_seq *_gather_106_rule(Parser *p);
653static void *_tmp_108_rule(Parser *p);
654static asdl_seq *_loop0_110_rule(Parser *p);
655static asdl_seq *_gather_109_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100656static asdl_seq *_loop0_112_rule(Parser *p);
657static asdl_seq *_gather_111_rule(Parser *p);
658static asdl_seq *_loop0_114_rule(Parser *p);
659static asdl_seq *_gather_113_rule(Parser *p);
660static asdl_seq *_loop0_116_rule(Parser *p);
661static asdl_seq *_gather_115_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000662static asdl_seq *_loop0_117_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100663static asdl_seq *_loop0_119_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000664static asdl_seq *_gather_118_rule(Parser *p);
665static void *_tmp_120_rule(Parser *p);
666static asdl_seq *_loop0_122_rule(Parser *p);
667static asdl_seq *_gather_121_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100668static asdl_seq *_loop0_124_rule(Parser *p);
669static asdl_seq *_gather_123_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000670static void *_tmp_125_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100671static asdl_seq *_loop0_126_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000672static asdl_seq *_loop0_127_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300673static asdl_seq *_loop0_128_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000674static void *_tmp_129_rule(Parser *p);
675static void *_tmp_130_rule(Parser *p);
676static asdl_seq *_loop0_131_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100677static void *_tmp_132_rule(Parser *p);
678static asdl_seq *_loop0_133_rule(Parser *p);
679static void *_tmp_134_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000680static void *_tmp_135_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100681static void *_tmp_136_rule(Parser *p);
682static void *_tmp_137_rule(Parser *p);
683static void *_tmp_138_rule(Parser *p);
684static void *_tmp_139_rule(Parser *p);
685static void *_tmp_140_rule(Parser *p);
686static void *_tmp_141_rule(Parser *p);
687static void *_tmp_142_rule(Parser *p);
688static void *_tmp_143_rule(Parser *p);
689static void *_tmp_144_rule(Parser *p);
690static void *_tmp_145_rule(Parser *p);
691static void *_tmp_146_rule(Parser *p);
692static void *_tmp_147_rule(Parser *p);
693static void *_tmp_148_rule(Parser *p);
694static void *_tmp_149_rule(Parser *p);
695static void *_tmp_150_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000696static asdl_seq *_loop1_151_rule(Parser *p);
697static asdl_seq *_loop1_152_rule(Parser *p);
698static void *_tmp_153_rule(Parser *p);
699static void *_tmp_154_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000700
701
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100702// file: statements? $
703static mod_ty
704file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000705{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100706 D(p->level++);
707 if (p->error_indicator) {
708 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000709 return NULL;
710 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100711 mod_ty _res = NULL;
712 int _mark = p->mark;
713 { // statements? $
714 if (p->error_indicator) {
715 D(p->level--);
716 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000717 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100718 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
719 void *a;
720 Token * endmarker_var;
721 if (
722 (a = statements_rule(p), 1) // statements?
723 &&
724 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
725 )
726 {
727 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
728 _res = _PyPegen_make_module ( p , a );
729 if (_res == NULL && PyErr_Occurred()) {
730 p->error_indicator = 1;
731 D(p->level--);
732 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000733 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100734 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000735 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100736 p->mark = _mark;
737 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000739 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100740 _res = NULL;
741 done:
742 D(p->level--);
743 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000744}
745
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100746// interactive: statement_newline
747static mod_ty
748interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000749{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100750 D(p->level++);
751 if (p->error_indicator) {
752 D(p->level--);
753 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000754 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100755 mod_ty _res = NULL;
756 int _mark = p->mark;
757 { // statement_newline
758 if (p->error_indicator) {
759 D(p->level--);
760 return NULL;
761 }
762 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100763 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100764 if (
765 (a = statement_newline_rule(p)) // statement_newline
766 )
767 {
768 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
769 _res = Interactive ( a , p -> arena );
770 if (_res == NULL && PyErr_Occurred()) {
771 p->error_indicator = 1;
772 D(p->level--);
773 return NULL;
774 }
775 goto done;
776 }
777 p->mark = _mark;
778 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
780 }
781 _res = NULL;
782 done:
783 D(p->level--);
784 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000785}
786
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100787// eval: expressions NEWLINE* $
788static mod_ty
789eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000790{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100791 D(p->level++);
792 if (p->error_indicator) {
793 D(p->level--);
794 return NULL;
795 }
796 mod_ty _res = NULL;
797 int _mark = p->mark;
798 { // expressions NEWLINE* $
799 if (p->error_indicator) {
800 D(p->level--);
801 return NULL;
802 }
803 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
804 asdl_seq * _loop0_1_var;
805 expr_ty a;
806 Token * endmarker_var;
807 if (
808 (a = expressions_rule(p)) // expressions
809 &&
810 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
811 &&
812 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
813 )
814 {
815 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
816 _res = Expression ( a , p -> arena );
817 if (_res == NULL && PyErr_Occurred()) {
818 p->error_indicator = 1;
819 D(p->level--);
820 return NULL;
821 }
822 goto done;
823 }
824 p->mark = _mark;
825 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
827 }
828 _res = NULL;
829 done:
830 D(p->level--);
831 return _res;
832}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000833
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100834// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
835static mod_ty
836func_type_rule(Parser *p)
837{
838 D(p->level++);
839 if (p->error_indicator) {
840 D(p->level--);
841 return NULL;
842 }
843 mod_ty _res = NULL;
844 int _mark = p->mark;
845 { // '(' type_expressions? ')' '->' expression NEWLINE* $
846 if (p->error_indicator) {
847 D(p->level--);
848 return NULL;
849 }
850 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
851 Token * _literal;
852 Token * _literal_1;
853 Token * _literal_2;
854 asdl_seq * _loop0_2_var;
855 void *a;
856 expr_ty b;
857 Token * endmarker_var;
858 if (
859 (_literal = _PyPegen_expect_token(p, 7)) // token='('
860 &&
861 (a = type_expressions_rule(p), 1) // type_expressions?
862 &&
863 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
864 &&
865 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
866 &&
867 (b = expression_rule(p)) // expression
868 &&
869 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
870 &&
871 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
872 )
873 {
874 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
875 _res = FunctionType ( a , b , p -> arena );
876 if (_res == NULL && PyErr_Occurred()) {
877 p->error_indicator = 1;
878 D(p->level--);
879 return NULL;
880 }
881 goto done;
882 }
883 p->mark = _mark;
884 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
886 }
887 _res = NULL;
888 done:
889 D(p->level--);
890 return _res;
891}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000892
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100893// fstring: star_expressions
894static expr_ty
895fstring_rule(Parser *p)
896{
897 D(p->level++);
898 if (p->error_indicator) {
899 D(p->level--);
900 return NULL;
901 }
902 expr_ty _res = NULL;
903 int _mark = p->mark;
904 { // star_expressions
905 if (p->error_indicator) {
906 D(p->level--);
907 return NULL;
908 }
909 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
910 expr_ty star_expressions_var;
911 if (
912 (star_expressions_var = star_expressions_rule(p)) // star_expressions
913 )
914 {
915 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
916 _res = star_expressions_var;
917 goto done;
918 }
919 p->mark = _mark;
920 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
922 }
923 _res = NULL;
924 done:
925 D(p->level--);
926 return _res;
927}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000928
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100929// type_expressions:
930// | ','.expression+ ',' '*' expression ',' '**' expression
931// | ','.expression+ ',' '*' expression
932// | ','.expression+ ',' '**' expression
933// | '*' expression ',' '**' expression
934// | '*' expression
935// | '**' expression
936// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +0100937static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100938type_expressions_rule(Parser *p)
939{
940 D(p->level++);
941 if (p->error_indicator) {
942 D(p->level--);
943 return NULL;
944 }
Pablo Galindoa5634c42020-09-16 19:42:00 +0100945 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100946 int _mark = p->mark;
947 { // ','.expression+ ',' '*' expression ',' '**' expression
948 if (p->error_indicator) {
949 D(p->level--);
950 return NULL;
951 }
952 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
953 Token * _literal;
954 Token * _literal_1;
955 Token * _literal_2;
956 Token * _literal_3;
957 asdl_seq * a;
958 expr_ty b;
959 expr_ty c;
960 if (
961 (a = _gather_3_rule(p)) // ','.expression+
962 &&
963 (_literal = _PyPegen_expect_token(p, 12)) // token=','
964 &&
965 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
966 &&
967 (b = expression_rule(p)) // expression
968 &&
969 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
970 &&
971 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
972 &&
973 (c = expression_rule(p)) // expression
974 )
975 {
976 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 +0300977 _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 +0100978 if (_res == NULL && PyErr_Occurred()) {
979 p->error_indicator = 1;
980 D(p->level--);
981 return NULL;
982 }
983 goto done;
984 }
985 p->mark = _mark;
986 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
988 }
989 { // ','.expression+ ',' '*' expression
990 if (p->error_indicator) {
991 D(p->level--);
992 return NULL;
993 }
994 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
995 Token * _literal;
996 Token * _literal_1;
997 asdl_seq * a;
998 expr_ty b;
999 if (
1000 (a = _gather_5_rule(p)) // ','.expression+
1001 &&
1002 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1003 &&
1004 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1005 &&
1006 (b = expression_rule(p)) // expression
1007 )
1008 {
1009 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 +01001010 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001011 if (_res == NULL && PyErr_Occurred()) {
1012 p->error_indicator = 1;
1013 D(p->level--);
1014 return NULL;
1015 }
1016 goto done;
1017 }
1018 p->mark = _mark;
1019 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1021 }
1022 { // ','.expression+ ',' '**' expression
1023 if (p->error_indicator) {
1024 D(p->level--);
1025 return NULL;
1026 }
1027 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1028 Token * _literal;
1029 Token * _literal_1;
1030 asdl_seq * a;
1031 expr_ty b;
1032 if (
1033 (a = _gather_7_rule(p)) // ','.expression+
1034 &&
1035 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1036 &&
1037 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1038 &&
1039 (b = expression_rule(p)) // expression
1040 )
1041 {
1042 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 +01001043 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001044 if (_res == NULL && PyErr_Occurred()) {
1045 p->error_indicator = 1;
1046 D(p->level--);
1047 return NULL;
1048 }
1049 goto done;
1050 }
1051 p->mark = _mark;
1052 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1054 }
1055 { // '*' expression ',' '**' expression
1056 if (p->error_indicator) {
1057 D(p->level--);
1058 return NULL;
1059 }
1060 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1061 Token * _literal;
1062 Token * _literal_1;
1063 Token * _literal_2;
1064 expr_ty a;
1065 expr_ty b;
1066 if (
1067 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1068 &&
1069 (a = expression_rule(p)) // expression
1070 &&
1071 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1072 &&
1073 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1074 &&
1075 (b = expression_rule(p)) // expression
1076 )
1077 {
1078 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 +03001079 _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 +01001080 if (_res == NULL && PyErr_Occurred()) {
1081 p->error_indicator = 1;
1082 D(p->level--);
1083 return NULL;
1084 }
1085 goto done;
1086 }
1087 p->mark = _mark;
1088 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1090 }
1091 { // '*' expression
1092 if (p->error_indicator) {
1093 D(p->level--);
1094 return NULL;
1095 }
1096 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1097 Token * _literal;
1098 expr_ty a;
1099 if (
1100 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1101 &&
1102 (a = expression_rule(p)) // expression
1103 )
1104 {
1105 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001106 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001107 if (_res == NULL && PyErr_Occurred()) {
1108 p->error_indicator = 1;
1109 D(p->level--);
1110 return NULL;
1111 }
1112 goto done;
1113 }
1114 p->mark = _mark;
1115 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1117 }
1118 { // '**' expression
1119 if (p->error_indicator) {
1120 D(p->level--);
1121 return NULL;
1122 }
1123 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1124 Token * _literal;
1125 expr_ty a;
1126 if (
1127 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1128 &&
1129 (a = expression_rule(p)) // expression
1130 )
1131 {
1132 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001133 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001134 if (_res == NULL && PyErr_Occurred()) {
1135 p->error_indicator = 1;
1136 D(p->level--);
1137 return NULL;
1138 }
1139 goto done;
1140 }
1141 p->mark = _mark;
1142 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1144 }
1145 { // ','.expression+
1146 if (p->error_indicator) {
1147 D(p->level--);
1148 return NULL;
1149 }
1150 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001151 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001152 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001153 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001154 )
1155 {
1156 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001157 _res = a;
1158 if (_res == NULL && PyErr_Occurred()) {
1159 p->error_indicator = 1;
1160 D(p->level--);
1161 return NULL;
1162 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001163 goto done;
1164 }
1165 p->mark = _mark;
1166 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1168 }
1169 _res = NULL;
1170 done:
1171 D(p->level--);
1172 return _res;
1173}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001174
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001175// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001176static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001177statements_rule(Parser *p)
1178{
1179 D(p->level++);
1180 if (p->error_indicator) {
1181 D(p->level--);
1182 return NULL;
1183 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001184 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001185 int _mark = p->mark;
1186 { // statement+
1187 if (p->error_indicator) {
1188 D(p->level--);
1189 return NULL;
1190 }
1191 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1192 asdl_seq * a;
1193 if (
1194 (a = _loop1_11_rule(p)) // statement+
1195 )
1196 {
1197 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001198 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001199 if (_res == NULL && PyErr_Occurred()) {
1200 p->error_indicator = 1;
1201 D(p->level--);
1202 return NULL;
1203 }
1204 goto done;
1205 }
1206 p->mark = _mark;
1207 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1209 }
1210 _res = NULL;
1211 done:
1212 D(p->level--);
1213 return _res;
1214}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001215
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001216// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001217static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001218statement_rule(Parser *p)
1219{
1220 D(p->level++);
1221 if (p->error_indicator) {
1222 D(p->level--);
1223 return NULL;
1224 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001225 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001226 int _mark = p->mark;
1227 { // compound_stmt
1228 if (p->error_indicator) {
1229 D(p->level--);
1230 return NULL;
1231 }
1232 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1233 stmt_ty a;
1234 if (
1235 (a = compound_stmt_rule(p)) // compound_stmt
1236 )
1237 {
1238 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001239 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001240 if (_res == NULL && PyErr_Occurred()) {
1241 p->error_indicator = 1;
1242 D(p->level--);
1243 return NULL;
1244 }
1245 goto done;
1246 }
1247 p->mark = _mark;
1248 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1250 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001251 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001252 if (p->error_indicator) {
1253 D(p->level--);
1254 return NULL;
1255 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001256 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001257 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001258 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001259 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001260 )
1261 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001262 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001263 _res = a;
1264 if (_res == NULL && PyErr_Occurred()) {
1265 p->error_indicator = 1;
1266 D(p->level--);
1267 return NULL;
1268 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001269 goto done;
1270 }
1271 p->mark = _mark;
1272 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001274 }
1275 _res = NULL;
1276 done:
1277 D(p->level--);
1278 return _res;
1279}
1280
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001281// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001282static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001283statement_newline_rule(Parser *p)
1284{
1285 D(p->level++);
1286 if (p->error_indicator) {
1287 D(p->level--);
1288 return NULL;
1289 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001290 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001291 int _mark = p->mark;
1292 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1293 p->error_indicator = 1;
1294 D(p->level--);
1295 return NULL;
1296 }
1297 int _start_lineno = p->tokens[_mark]->lineno;
1298 UNUSED(_start_lineno); // Only used by EXTRA macro
1299 int _start_col_offset = p->tokens[_mark]->col_offset;
1300 UNUSED(_start_col_offset); // Only used by EXTRA macro
1301 { // compound_stmt NEWLINE
1302 if (p->error_indicator) {
1303 D(p->level--);
1304 return NULL;
1305 }
1306 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1307 stmt_ty a;
1308 Token * newline_var;
1309 if (
1310 (a = compound_stmt_rule(p)) // compound_stmt
1311 &&
1312 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1313 )
1314 {
1315 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 +01001316 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001317 if (_res == NULL && PyErr_Occurred()) {
1318 p->error_indicator = 1;
1319 D(p->level--);
1320 return NULL;
1321 }
1322 goto done;
1323 }
1324 p->mark = _mark;
1325 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1327 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001328 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001329 if (p->error_indicator) {
1330 D(p->level--);
1331 return NULL;
1332 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001333 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1334 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001335 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001336 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001337 )
1338 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001339 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1340 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001341 goto done;
1342 }
1343 p->mark = _mark;
1344 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001346 }
1347 { // NEWLINE
1348 if (p->error_indicator) {
1349 D(p->level--);
1350 return NULL;
1351 }
1352 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1353 Token * newline_var;
1354 if (
1355 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1356 )
1357 {
1358 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1359 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1360 if (_token == NULL) {
1361 D(p->level--);
1362 return NULL;
1363 }
1364 int _end_lineno = _token->end_lineno;
1365 UNUSED(_end_lineno); // Only used by EXTRA macro
1366 int _end_col_offset = _token->end_col_offset;
1367 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001368 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _Py_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001369 if (_res == NULL && PyErr_Occurred()) {
1370 p->error_indicator = 1;
1371 D(p->level--);
1372 return NULL;
1373 }
1374 goto done;
1375 }
1376 p->mark = _mark;
1377 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1379 }
1380 { // $
1381 if (p->error_indicator) {
1382 D(p->level--);
1383 return NULL;
1384 }
1385 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1386 Token * endmarker_var;
1387 if (
1388 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1389 )
1390 {
1391 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1392 _res = _PyPegen_interactive_exit ( p );
1393 if (_res == NULL && PyErr_Occurred()) {
1394 p->error_indicator = 1;
1395 D(p->level--);
1396 return NULL;
1397 }
1398 goto done;
1399 }
1400 p->mark = _mark;
1401 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1403 }
1404 _res = NULL;
1405 done:
1406 D(p->level--);
1407 return _res;
1408}
1409
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001410// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001411static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001412simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001413{
1414 D(p->level++);
1415 if (p->error_indicator) {
1416 D(p->level--);
1417 return NULL;
1418 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001419 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001420 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001421 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001422 if (p->error_indicator) {
1423 D(p->level--);
1424 return NULL;
1425 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001426 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 +01001427 stmt_ty a;
1428 Token * newline_var;
1429 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001430 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001431 &&
1432 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1433 &&
1434 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1435 )
1436 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001437 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 +01001438 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001439 if (_res == NULL && PyErr_Occurred()) {
1440 p->error_indicator = 1;
1441 D(p->level--);
1442 return NULL;
1443 }
1444 goto done;
1445 }
1446 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001447 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001449 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001450 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001451 if (p->error_indicator) {
1452 D(p->level--);
1453 return NULL;
1454 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001455 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 +01001456 void *_opt_var;
1457 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001458 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001459 Token * newline_var;
1460 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001461 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001462 &&
1463 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1464 &&
1465 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1466 )
1467 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001468 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 +01001469 _res = a;
1470 if (_res == NULL && PyErr_Occurred()) {
1471 p->error_indicator = 1;
1472 D(p->level--);
1473 return NULL;
1474 }
1475 goto done;
1476 }
1477 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001478 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001480 }
1481 _res = NULL;
1482 done:
1483 D(p->level--);
1484 return _res;
1485}
1486
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001487// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001488// | assignment
1489// | star_expressions
1490// | &'return' return_stmt
1491// | &('import' | 'from') import_stmt
1492// | &'raise' raise_stmt
1493// | 'pass'
1494// | &'del' del_stmt
1495// | &'yield' yield_stmt
1496// | &'assert' assert_stmt
1497// | 'break'
1498// | 'continue'
1499// | &'global' global_stmt
1500// | &'nonlocal' nonlocal_stmt
1501static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001502simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001503{
1504 D(p->level++);
1505 if (p->error_indicator) {
1506 D(p->level--);
1507 return NULL;
1508 }
1509 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001510 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001511 D(p->level--);
1512 return _res;
1513 }
1514 int _mark = p->mark;
1515 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1516 p->error_indicator = 1;
1517 D(p->level--);
1518 return NULL;
1519 }
1520 int _start_lineno = p->tokens[_mark]->lineno;
1521 UNUSED(_start_lineno); // Only used by EXTRA macro
1522 int _start_col_offset = p->tokens[_mark]->col_offset;
1523 UNUSED(_start_col_offset); // Only used by EXTRA macro
1524 { // assignment
1525 if (p->error_indicator) {
1526 D(p->level--);
1527 return NULL;
1528 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001529 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001530 stmt_ty assignment_var;
1531 if (
1532 (assignment_var = assignment_rule(p)) // assignment
1533 )
1534 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001535 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001536 _res = assignment_var;
1537 goto done;
1538 }
1539 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001540 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1542 }
1543 { // star_expressions
1544 if (p->error_indicator) {
1545 D(p->level--);
1546 return NULL;
1547 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001548 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001549 expr_ty e;
1550 if (
1551 (e = star_expressions_rule(p)) // star_expressions
1552 )
1553 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001554 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 +01001555 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1556 if (_token == NULL) {
1557 D(p->level--);
1558 return NULL;
1559 }
1560 int _end_lineno = _token->end_lineno;
1561 UNUSED(_end_lineno); // Only used by EXTRA macro
1562 int _end_col_offset = _token->end_col_offset;
1563 UNUSED(_end_col_offset); // Only used by EXTRA macro
1564 _res = _Py_Expr ( e , EXTRA );
1565 if (_res == NULL && PyErr_Occurred()) {
1566 p->error_indicator = 1;
1567 D(p->level--);
1568 return NULL;
1569 }
1570 goto done;
1571 }
1572 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001573 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1575 }
1576 { // &'return' return_stmt
1577 if (p->error_indicator) {
1578 D(p->level--);
1579 return NULL;
1580 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001581 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 +01001582 stmt_ty return_stmt_var;
1583 if (
1584 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1585 &&
1586 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1587 )
1588 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001589 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 +01001590 _res = return_stmt_var;
1591 goto done;
1592 }
1593 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001594 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1596 }
1597 { // &('import' | 'from') import_stmt
1598 if (p->error_indicator) {
1599 D(p->level--);
1600 return NULL;
1601 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001602 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 +01001603 stmt_ty import_stmt_var;
1604 if (
1605 _PyPegen_lookahead(1, _tmp_14_rule, p)
1606 &&
1607 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1608 )
1609 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001610 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 +01001611 _res = import_stmt_var;
1612 goto done;
1613 }
1614 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001615 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1617 }
1618 { // &'raise' raise_stmt
1619 if (p->error_indicator) {
1620 D(p->level--);
1621 return NULL;
1622 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001623 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 +01001624 stmt_ty raise_stmt_var;
1625 if (
1626 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1627 &&
1628 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1629 )
1630 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001631 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 +01001632 _res = raise_stmt_var;
1633 goto done;
1634 }
1635 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001636 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1638 }
1639 { // 'pass'
1640 if (p->error_indicator) {
1641 D(p->level--);
1642 return NULL;
1643 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001644 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001645 Token * _keyword;
1646 if (
1647 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1648 )
1649 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001650 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001651 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1652 if (_token == NULL) {
1653 D(p->level--);
1654 return NULL;
1655 }
1656 int _end_lineno = _token->end_lineno;
1657 UNUSED(_end_lineno); // Only used by EXTRA macro
1658 int _end_col_offset = _token->end_col_offset;
1659 UNUSED(_end_col_offset); // Only used by EXTRA macro
1660 _res = _Py_Pass ( EXTRA );
1661 if (_res == NULL && PyErr_Occurred()) {
1662 p->error_indicator = 1;
1663 D(p->level--);
1664 return NULL;
1665 }
1666 goto done;
1667 }
1668 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001669 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1671 }
1672 { // &'del' del_stmt
1673 if (p->error_indicator) {
1674 D(p->level--);
1675 return NULL;
1676 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001677 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 +01001678 stmt_ty del_stmt_var;
1679 if (
1680 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1681 &&
1682 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1683 )
1684 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001685 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 +01001686 _res = del_stmt_var;
1687 goto done;
1688 }
1689 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001690 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1692 }
1693 { // &'yield' yield_stmt
1694 if (p->error_indicator) {
1695 D(p->level--);
1696 return NULL;
1697 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001698 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 +01001699 stmt_ty yield_stmt_var;
1700 if (
1701 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1702 &&
1703 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1704 )
1705 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001706 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 +01001707 _res = yield_stmt_var;
1708 goto done;
1709 }
1710 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001711 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1713 }
1714 { // &'assert' assert_stmt
1715 if (p->error_indicator) {
1716 D(p->level--);
1717 return NULL;
1718 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001719 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 +01001720 stmt_ty assert_stmt_var;
1721 if (
1722 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1723 &&
1724 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1725 )
1726 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001727 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 +01001728 _res = assert_stmt_var;
1729 goto done;
1730 }
1731 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001732 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1734 }
1735 { // 'break'
1736 if (p->error_indicator) {
1737 D(p->level--);
1738 return NULL;
1739 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001740 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001741 Token * _keyword;
1742 if (
1743 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1744 )
1745 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001746 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001747 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1748 if (_token == NULL) {
1749 D(p->level--);
1750 return NULL;
1751 }
1752 int _end_lineno = _token->end_lineno;
1753 UNUSED(_end_lineno); // Only used by EXTRA macro
1754 int _end_col_offset = _token->end_col_offset;
1755 UNUSED(_end_col_offset); // Only used by EXTRA macro
1756 _res = _Py_Break ( EXTRA );
1757 if (_res == NULL && PyErr_Occurred()) {
1758 p->error_indicator = 1;
1759 D(p->level--);
1760 return NULL;
1761 }
1762 goto done;
1763 }
1764 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001765 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1767 }
1768 { // 'continue'
1769 if (p->error_indicator) {
1770 D(p->level--);
1771 return NULL;
1772 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001773 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001774 Token * _keyword;
1775 if (
1776 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1777 )
1778 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001779 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001780 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1781 if (_token == NULL) {
1782 D(p->level--);
1783 return NULL;
1784 }
1785 int _end_lineno = _token->end_lineno;
1786 UNUSED(_end_lineno); // Only used by EXTRA macro
1787 int _end_col_offset = _token->end_col_offset;
1788 UNUSED(_end_col_offset); // Only used by EXTRA macro
1789 _res = _Py_Continue ( EXTRA );
1790 if (_res == NULL && PyErr_Occurred()) {
1791 p->error_indicator = 1;
1792 D(p->level--);
1793 return NULL;
1794 }
1795 goto done;
1796 }
1797 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001798 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1800 }
1801 { // &'global' global_stmt
1802 if (p->error_indicator) {
1803 D(p->level--);
1804 return NULL;
1805 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001806 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 +01001807 stmt_ty global_stmt_var;
1808 if (
1809 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1810 &&
1811 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1812 )
1813 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001814 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 +01001815 _res = global_stmt_var;
1816 goto done;
1817 }
1818 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001819 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1821 }
1822 { // &'nonlocal' nonlocal_stmt
1823 if (p->error_indicator) {
1824 D(p->level--);
1825 return NULL;
1826 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001827 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 +01001828 stmt_ty nonlocal_stmt_var;
1829 if (
1830 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1831 &&
1832 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1833 )
1834 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001835 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 +01001836 _res = nonlocal_stmt_var;
1837 goto done;
1838 }
1839 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001840 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1842 }
1843 _res = NULL;
1844 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001845 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001846 D(p->level--);
1847 return _res;
1848}
1849
1850// compound_stmt:
1851// | &('def' | '@' | ASYNC) function_def
1852// | &'if' if_stmt
1853// | &('class' | '@') class_def
1854// | &('with' | ASYNC) with_stmt
1855// | &('for' | ASYNC) for_stmt
1856// | &'try' try_stmt
1857// | &'while' while_stmt
1858static stmt_ty
1859compound_stmt_rule(Parser *p)
1860{
1861 D(p->level++);
1862 if (p->error_indicator) {
1863 D(p->level--);
1864 return NULL;
1865 }
1866 stmt_ty _res = NULL;
1867 int _mark = p->mark;
1868 { // &('def' | '@' | ASYNC) function_def
1869 if (p->error_indicator) {
1870 D(p->level--);
1871 return NULL;
1872 }
1873 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1874 stmt_ty function_def_var;
1875 if (
1876 _PyPegen_lookahead(1, _tmp_15_rule, p)
1877 &&
1878 (function_def_var = function_def_rule(p)) // function_def
1879 )
1880 {
1881 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1882 _res = function_def_var;
1883 goto done;
1884 }
1885 p->mark = _mark;
1886 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1888 }
1889 { // &'if' if_stmt
1890 if (p->error_indicator) {
1891 D(p->level--);
1892 return NULL;
1893 }
1894 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1895 stmt_ty if_stmt_var;
1896 if (
1897 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
1898 &&
1899 (if_stmt_var = if_stmt_rule(p)) // if_stmt
1900 )
1901 {
1902 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1903 _res = if_stmt_var;
1904 goto done;
1905 }
1906 p->mark = _mark;
1907 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
1909 }
1910 { // &('class' | '@') class_def
1911 if (p->error_indicator) {
1912 D(p->level--);
1913 return NULL;
1914 }
1915 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1916 stmt_ty class_def_var;
1917 if (
1918 _PyPegen_lookahead(1, _tmp_16_rule, p)
1919 &&
1920 (class_def_var = class_def_rule(p)) // class_def
1921 )
1922 {
1923 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1924 _res = class_def_var;
1925 goto done;
1926 }
1927 p->mark = _mark;
1928 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
1930 }
1931 { // &('with' | ASYNC) with_stmt
1932 if (p->error_indicator) {
1933 D(p->level--);
1934 return NULL;
1935 }
1936 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1937 stmt_ty with_stmt_var;
1938 if (
1939 _PyPegen_lookahead(1, _tmp_17_rule, p)
1940 &&
1941 (with_stmt_var = with_stmt_rule(p)) // with_stmt
1942 )
1943 {
1944 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1945 _res = with_stmt_var;
1946 goto done;
1947 }
1948 p->mark = _mark;
1949 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1951 }
1952 { // &('for' | ASYNC) for_stmt
1953 if (p->error_indicator) {
1954 D(p->level--);
1955 return NULL;
1956 }
1957 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1958 stmt_ty for_stmt_var;
1959 if (
1960 _PyPegen_lookahead(1, _tmp_18_rule, p)
1961 &&
1962 (for_stmt_var = for_stmt_rule(p)) // for_stmt
1963 )
1964 {
1965 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1966 _res = for_stmt_var;
1967 goto done;
1968 }
1969 p->mark = _mark;
1970 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1972 }
1973 { // &'try' try_stmt
1974 if (p->error_indicator) {
1975 D(p->level--);
1976 return NULL;
1977 }
1978 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
1979 stmt_ty try_stmt_var;
1980 if (
1981 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
1982 &&
1983 (try_stmt_var = try_stmt_rule(p)) // try_stmt
1984 )
1985 {
1986 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
1987 _res = try_stmt_var;
1988 goto done;
1989 }
1990 p->mark = _mark;
1991 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
1993 }
1994 { // &'while' while_stmt
1995 if (p->error_indicator) {
1996 D(p->level--);
1997 return NULL;
1998 }
1999 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2000 stmt_ty while_stmt_var;
2001 if (
2002 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2003 &&
2004 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2005 )
2006 {
2007 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2008 _res = while_stmt_var;
2009 goto done;
2010 }
2011 p->mark = _mark;
2012 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2014 }
2015 _res = NULL;
2016 done:
2017 D(p->level--);
2018 return _res;
2019}
2020
2021// assignment:
2022// | NAME ':' expression ['=' annotated_rhs]
2023// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2024// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002025// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002026// | invalid_assignment
2027static stmt_ty
2028assignment_rule(Parser *p)
2029{
2030 D(p->level++);
2031 if (p->error_indicator) {
2032 D(p->level--);
2033 return NULL;
2034 }
2035 stmt_ty _res = NULL;
2036 int _mark = p->mark;
2037 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2038 p->error_indicator = 1;
2039 D(p->level--);
2040 return NULL;
2041 }
2042 int _start_lineno = p->tokens[_mark]->lineno;
2043 UNUSED(_start_lineno); // Only used by EXTRA macro
2044 int _start_col_offset = p->tokens[_mark]->col_offset;
2045 UNUSED(_start_col_offset); // Only used by EXTRA macro
2046 { // NAME ':' expression ['=' annotated_rhs]
2047 if (p->error_indicator) {
2048 D(p->level--);
2049 return NULL;
2050 }
2051 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2052 Token * _literal;
2053 expr_ty a;
2054 expr_ty b;
2055 void *c;
2056 if (
2057 (a = _PyPegen_name_token(p)) // NAME
2058 &&
2059 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2060 &&
2061 (b = expression_rule(p)) // expression
2062 &&
2063 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2064 )
2065 {
2066 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2067 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2068 if (_token == NULL) {
2069 D(p->level--);
2070 return NULL;
2071 }
2072 int _end_lineno = _token->end_lineno;
2073 UNUSED(_end_lineno); // Only used by EXTRA macro
2074 int _end_col_offset = _token->end_col_offset;
2075 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002076 _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 +01002077 if (_res == NULL && PyErr_Occurred()) {
2078 p->error_indicator = 1;
2079 D(p->level--);
2080 return NULL;
2081 }
2082 goto done;
2083 }
2084 p->mark = _mark;
2085 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2087 }
2088 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2089 if (p->error_indicator) {
2090 D(p->level--);
2091 return NULL;
2092 }
2093 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2094 Token * _literal;
2095 void *a;
2096 expr_ty b;
2097 void *c;
2098 if (
2099 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2100 &&
2101 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2102 &&
2103 (b = expression_rule(p)) // expression
2104 &&
2105 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2106 )
2107 {
2108 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2109 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2110 if (_token == NULL) {
2111 D(p->level--);
2112 return NULL;
2113 }
2114 int _end_lineno = _token->end_lineno;
2115 UNUSED(_end_lineno); // Only used by EXTRA macro
2116 int _end_col_offset = _token->end_col_offset;
2117 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002118 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002119 if (_res == NULL && PyErr_Occurred()) {
2120 p->error_indicator = 1;
2121 D(p->level--);
2122 return NULL;
2123 }
2124 goto done;
2125 }
2126 p->mark = _mark;
2127 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2129 }
2130 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2131 if (p->error_indicator) {
2132 D(p->level--);
2133 return NULL;
2134 }
2135 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 +01002136 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002137 void *b;
2138 void *tc;
2139 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002140 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002141 &&
2142 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2143 &&
2144 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2145 &&
2146 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2147 )
2148 {
2149 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2151 if (_token == NULL) {
2152 D(p->level--);
2153 return NULL;
2154 }
2155 int _end_lineno = _token->end_lineno;
2156 UNUSED(_end_lineno); // Only used by EXTRA macro
2157 int _end_col_offset = _token->end_col_offset;
2158 UNUSED(_end_col_offset); // Only used by EXTRA macro
2159 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2160 if (_res == NULL && PyErr_Occurred()) {
2161 p->error_indicator = 1;
2162 D(p->level--);
2163 return NULL;
2164 }
2165 goto done;
2166 }
2167 p->mark = _mark;
2168 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2170 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002171 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002172 if (p->error_indicator) {
2173 D(p->level--);
2174 return NULL;
2175 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002176 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2177 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002178 expr_ty a;
2179 AugOperator* b;
2180 void *c;
2181 if (
2182 (a = single_target_rule(p)) // single_target
2183 &&
2184 (b = augassign_rule(p)) // augassign
2185 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002186 (_cut_var = 1)
2187 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002188 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2189 )
2190 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002191 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 +01002192 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2193 if (_token == NULL) {
2194 D(p->level--);
2195 return NULL;
2196 }
2197 int _end_lineno = _token->end_lineno;
2198 UNUSED(_end_lineno); // Only used by EXTRA macro
2199 int _end_col_offset = _token->end_col_offset;
2200 UNUSED(_end_col_offset); // Only used by EXTRA macro
2201 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2202 if (_res == NULL && PyErr_Occurred()) {
2203 p->error_indicator = 1;
2204 D(p->level--);
2205 return NULL;
2206 }
2207 goto done;
2208 }
2209 p->mark = _mark;
2210 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2212 if (_cut_var) {
2213 D(p->level--);
2214 return NULL;
2215 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002216 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002217 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002218 if (p->error_indicator) {
2219 D(p->level--);
2220 return NULL;
2221 }
2222 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2223 void *invalid_assignment_var;
2224 if (
2225 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2226 )
2227 {
2228 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2229 _res = invalid_assignment_var;
2230 goto done;
2231 }
2232 p->mark = _mark;
2233 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2235 }
2236 _res = NULL;
2237 done:
2238 D(p->level--);
2239 return _res;
2240}
2241
2242// augassign:
2243// | '+='
2244// | '-='
2245// | '*='
2246// | '@='
2247// | '/='
2248// | '%='
2249// | '&='
2250// | '|='
2251// | '^='
2252// | '<<='
2253// | '>>='
2254// | '**='
2255// | '//='
2256static AugOperator*
2257augassign_rule(Parser *p)
2258{
2259 D(p->level++);
2260 if (p->error_indicator) {
2261 D(p->level--);
2262 return NULL;
2263 }
2264 AugOperator* _res = NULL;
2265 int _mark = p->mark;
2266 { // '+='
2267 if (p->error_indicator) {
2268 D(p->level--);
2269 return NULL;
2270 }
2271 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2272 Token * _literal;
2273 if (
2274 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2275 )
2276 {
2277 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2278 _res = _PyPegen_augoperator ( p , Add );
2279 if (_res == NULL && PyErr_Occurred()) {
2280 p->error_indicator = 1;
2281 D(p->level--);
2282 return NULL;
2283 }
2284 goto done;
2285 }
2286 p->mark = _mark;
2287 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2289 }
2290 { // '-='
2291 if (p->error_indicator) {
2292 D(p->level--);
2293 return NULL;
2294 }
2295 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2296 Token * _literal;
2297 if (
2298 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2299 )
2300 {
2301 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2302 _res = _PyPegen_augoperator ( p , Sub );
2303 if (_res == NULL && PyErr_Occurred()) {
2304 p->error_indicator = 1;
2305 D(p->level--);
2306 return NULL;
2307 }
2308 goto done;
2309 }
2310 p->mark = _mark;
2311 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2313 }
2314 { // '*='
2315 if (p->error_indicator) {
2316 D(p->level--);
2317 return NULL;
2318 }
2319 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2320 Token * _literal;
2321 if (
2322 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2323 )
2324 {
2325 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2326 _res = _PyPegen_augoperator ( p , Mult );
2327 if (_res == NULL && PyErr_Occurred()) {
2328 p->error_indicator = 1;
2329 D(p->level--);
2330 return NULL;
2331 }
2332 goto done;
2333 }
2334 p->mark = _mark;
2335 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2337 }
2338 { // '@='
2339 if (p->error_indicator) {
2340 D(p->level--);
2341 return NULL;
2342 }
2343 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2344 Token * _literal;
2345 if (
2346 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2347 )
2348 {
2349 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002350 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002351 if (_res == NULL && PyErr_Occurred()) {
2352 p->error_indicator = 1;
2353 D(p->level--);
2354 return NULL;
2355 }
2356 goto done;
2357 }
2358 p->mark = _mark;
2359 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2361 }
2362 { // '/='
2363 if (p->error_indicator) {
2364 D(p->level--);
2365 return NULL;
2366 }
2367 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2368 Token * _literal;
2369 if (
2370 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2371 )
2372 {
2373 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2374 _res = _PyPegen_augoperator ( p , Div );
2375 if (_res == NULL && PyErr_Occurred()) {
2376 p->error_indicator = 1;
2377 D(p->level--);
2378 return NULL;
2379 }
2380 goto done;
2381 }
2382 p->mark = _mark;
2383 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2385 }
2386 { // '%='
2387 if (p->error_indicator) {
2388 D(p->level--);
2389 return NULL;
2390 }
2391 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2392 Token * _literal;
2393 if (
2394 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2395 )
2396 {
2397 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2398 _res = _PyPegen_augoperator ( p , Mod );
2399 if (_res == NULL && PyErr_Occurred()) {
2400 p->error_indicator = 1;
2401 D(p->level--);
2402 return NULL;
2403 }
2404 goto done;
2405 }
2406 p->mark = _mark;
2407 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2409 }
2410 { // '&='
2411 if (p->error_indicator) {
2412 D(p->level--);
2413 return NULL;
2414 }
2415 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2416 Token * _literal;
2417 if (
2418 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2419 )
2420 {
2421 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2422 _res = _PyPegen_augoperator ( p , BitAnd );
2423 if (_res == NULL && PyErr_Occurred()) {
2424 p->error_indicator = 1;
2425 D(p->level--);
2426 return NULL;
2427 }
2428 goto done;
2429 }
2430 p->mark = _mark;
2431 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2433 }
2434 { // '|='
2435 if (p->error_indicator) {
2436 D(p->level--);
2437 return NULL;
2438 }
2439 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2440 Token * _literal;
2441 if (
2442 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2443 )
2444 {
2445 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2446 _res = _PyPegen_augoperator ( p , BitOr );
2447 if (_res == NULL && PyErr_Occurred()) {
2448 p->error_indicator = 1;
2449 D(p->level--);
2450 return NULL;
2451 }
2452 goto done;
2453 }
2454 p->mark = _mark;
2455 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2457 }
2458 { // '^='
2459 if (p->error_indicator) {
2460 D(p->level--);
2461 return NULL;
2462 }
2463 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2464 Token * _literal;
2465 if (
2466 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2467 )
2468 {
2469 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2470 _res = _PyPegen_augoperator ( p , BitXor );
2471 if (_res == NULL && PyErr_Occurred()) {
2472 p->error_indicator = 1;
2473 D(p->level--);
2474 return NULL;
2475 }
2476 goto done;
2477 }
2478 p->mark = _mark;
2479 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2481 }
2482 { // '<<='
2483 if (p->error_indicator) {
2484 D(p->level--);
2485 return NULL;
2486 }
2487 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2488 Token * _literal;
2489 if (
2490 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2491 )
2492 {
2493 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2494 _res = _PyPegen_augoperator ( p , LShift );
2495 if (_res == NULL && PyErr_Occurred()) {
2496 p->error_indicator = 1;
2497 D(p->level--);
2498 return NULL;
2499 }
2500 goto done;
2501 }
2502 p->mark = _mark;
2503 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2505 }
2506 { // '>>='
2507 if (p->error_indicator) {
2508 D(p->level--);
2509 return NULL;
2510 }
2511 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2512 Token * _literal;
2513 if (
2514 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2515 )
2516 {
2517 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2518 _res = _PyPegen_augoperator ( p , RShift );
2519 if (_res == NULL && PyErr_Occurred()) {
2520 p->error_indicator = 1;
2521 D(p->level--);
2522 return NULL;
2523 }
2524 goto done;
2525 }
2526 p->mark = _mark;
2527 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2529 }
2530 { // '**='
2531 if (p->error_indicator) {
2532 D(p->level--);
2533 return NULL;
2534 }
2535 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2536 Token * _literal;
2537 if (
2538 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2539 )
2540 {
2541 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2542 _res = _PyPegen_augoperator ( p , Pow );
2543 if (_res == NULL && PyErr_Occurred()) {
2544 p->error_indicator = 1;
2545 D(p->level--);
2546 return NULL;
2547 }
2548 goto done;
2549 }
2550 p->mark = _mark;
2551 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2553 }
2554 { // '//='
2555 if (p->error_indicator) {
2556 D(p->level--);
2557 return NULL;
2558 }
2559 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2560 Token * _literal;
2561 if (
2562 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2563 )
2564 {
2565 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2566 _res = _PyPegen_augoperator ( p , FloorDiv );
2567 if (_res == NULL && PyErr_Occurred()) {
2568 p->error_indicator = 1;
2569 D(p->level--);
2570 return NULL;
2571 }
2572 goto done;
2573 }
2574 p->mark = _mark;
2575 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2577 }
2578 _res = NULL;
2579 done:
2580 D(p->level--);
2581 return _res;
2582}
2583
2584// global_stmt: 'global' ','.NAME+
2585static stmt_ty
2586global_stmt_rule(Parser *p)
2587{
2588 D(p->level++);
2589 if (p->error_indicator) {
2590 D(p->level--);
2591 return NULL;
2592 }
2593 stmt_ty _res = NULL;
2594 int _mark = p->mark;
2595 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2596 p->error_indicator = 1;
2597 D(p->level--);
2598 return NULL;
2599 }
2600 int _start_lineno = p->tokens[_mark]->lineno;
2601 UNUSED(_start_lineno); // Only used by EXTRA macro
2602 int _start_col_offset = p->tokens[_mark]->col_offset;
2603 UNUSED(_start_col_offset); // Only used by EXTRA macro
2604 { // 'global' ','.NAME+
2605 if (p->error_indicator) {
2606 D(p->level--);
2607 return NULL;
2608 }
2609 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2610 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002611 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002612 if (
2613 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2614 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002615 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002616 )
2617 {
2618 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2619 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2620 if (_token == NULL) {
2621 D(p->level--);
2622 return NULL;
2623 }
2624 int _end_lineno = _token->end_lineno;
2625 UNUSED(_end_lineno); // Only used by EXTRA macro
2626 int _end_col_offset = _token->end_col_offset;
2627 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002628 _res = _Py_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002629 if (_res == NULL && PyErr_Occurred()) {
2630 p->error_indicator = 1;
2631 D(p->level--);
2632 return NULL;
2633 }
2634 goto done;
2635 }
2636 p->mark = _mark;
2637 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2639 }
2640 _res = NULL;
2641 done:
2642 D(p->level--);
2643 return _res;
2644}
2645
2646// nonlocal_stmt: 'nonlocal' ','.NAME+
2647static stmt_ty
2648nonlocal_stmt_rule(Parser *p)
2649{
2650 D(p->level++);
2651 if (p->error_indicator) {
2652 D(p->level--);
2653 return NULL;
2654 }
2655 stmt_ty _res = NULL;
2656 int _mark = p->mark;
2657 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2658 p->error_indicator = 1;
2659 D(p->level--);
2660 return NULL;
2661 }
2662 int _start_lineno = p->tokens[_mark]->lineno;
2663 UNUSED(_start_lineno); // Only used by EXTRA macro
2664 int _start_col_offset = p->tokens[_mark]->col_offset;
2665 UNUSED(_start_col_offset); // Only used by EXTRA macro
2666 { // 'nonlocal' ','.NAME+
2667 if (p->error_indicator) {
2668 D(p->level--);
2669 return NULL;
2670 }
2671 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2672 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002673 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002674 if (
2675 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2676 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002677 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002678 )
2679 {
2680 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2681 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2682 if (_token == NULL) {
2683 D(p->level--);
2684 return NULL;
2685 }
2686 int _end_lineno = _token->end_lineno;
2687 UNUSED(_end_lineno); // Only used by EXTRA macro
2688 int _end_col_offset = _token->end_col_offset;
2689 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002690 _res = _Py_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002691 if (_res == NULL && PyErr_Occurred()) {
2692 p->error_indicator = 1;
2693 D(p->level--);
2694 return NULL;
2695 }
2696 goto done;
2697 }
2698 p->mark = _mark;
2699 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2701 }
2702 _res = NULL;
2703 done:
2704 D(p->level--);
2705 return _res;
2706}
2707
2708// yield_stmt: yield_expr
2709static stmt_ty
2710yield_stmt_rule(Parser *p)
2711{
2712 D(p->level++);
2713 if (p->error_indicator) {
2714 D(p->level--);
2715 return NULL;
2716 }
2717 stmt_ty _res = NULL;
2718 int _mark = p->mark;
2719 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2720 p->error_indicator = 1;
2721 D(p->level--);
2722 return NULL;
2723 }
2724 int _start_lineno = p->tokens[_mark]->lineno;
2725 UNUSED(_start_lineno); // Only used by EXTRA macro
2726 int _start_col_offset = p->tokens[_mark]->col_offset;
2727 UNUSED(_start_col_offset); // Only used by EXTRA macro
2728 { // yield_expr
2729 if (p->error_indicator) {
2730 D(p->level--);
2731 return NULL;
2732 }
2733 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2734 expr_ty y;
2735 if (
2736 (y = yield_expr_rule(p)) // yield_expr
2737 )
2738 {
2739 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2741 if (_token == NULL) {
2742 D(p->level--);
2743 return NULL;
2744 }
2745 int _end_lineno = _token->end_lineno;
2746 UNUSED(_end_lineno); // Only used by EXTRA macro
2747 int _end_col_offset = _token->end_col_offset;
2748 UNUSED(_end_col_offset); // Only used by EXTRA macro
2749 _res = _Py_Expr ( y , EXTRA );
2750 if (_res == NULL && PyErr_Occurred()) {
2751 p->error_indicator = 1;
2752 D(p->level--);
2753 return NULL;
2754 }
2755 goto done;
2756 }
2757 p->mark = _mark;
2758 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2760 }
2761 _res = NULL;
2762 done:
2763 D(p->level--);
2764 return _res;
2765}
2766
2767// assert_stmt: 'assert' expression [',' expression]
2768static stmt_ty
2769assert_stmt_rule(Parser *p)
2770{
2771 D(p->level++);
2772 if (p->error_indicator) {
2773 D(p->level--);
2774 return NULL;
2775 }
2776 stmt_ty _res = NULL;
2777 int _mark = p->mark;
2778 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2779 p->error_indicator = 1;
2780 D(p->level--);
2781 return NULL;
2782 }
2783 int _start_lineno = p->tokens[_mark]->lineno;
2784 UNUSED(_start_lineno); // Only used by EXTRA macro
2785 int _start_col_offset = p->tokens[_mark]->col_offset;
2786 UNUSED(_start_col_offset); // Only used by EXTRA macro
2787 { // 'assert' expression [',' expression]
2788 if (p->error_indicator) {
2789 D(p->level--);
2790 return NULL;
2791 }
2792 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2793 Token * _keyword;
2794 expr_ty a;
2795 void *b;
2796 if (
2797 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2798 &&
2799 (a = expression_rule(p)) // expression
2800 &&
2801 (b = _tmp_29_rule(p), 1) // [',' expression]
2802 )
2803 {
2804 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2805 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2806 if (_token == NULL) {
2807 D(p->level--);
2808 return NULL;
2809 }
2810 int _end_lineno = _token->end_lineno;
2811 UNUSED(_end_lineno); // Only used by EXTRA macro
2812 int _end_col_offset = _token->end_col_offset;
2813 UNUSED(_end_col_offset); // Only used by EXTRA macro
2814 _res = _Py_Assert ( a , b , EXTRA );
2815 if (_res == NULL && PyErr_Occurred()) {
2816 p->error_indicator = 1;
2817 D(p->level--);
2818 return NULL;
2819 }
2820 goto done;
2821 }
2822 p->mark = _mark;
2823 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
2825 }
2826 _res = NULL;
2827 done:
2828 D(p->level--);
2829 return _res;
2830}
2831
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002832// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002833static stmt_ty
2834del_stmt_rule(Parser *p)
2835{
2836 D(p->level++);
2837 if (p->error_indicator) {
2838 D(p->level--);
2839 return NULL;
2840 }
2841 stmt_ty _res = NULL;
2842 int _mark = p->mark;
2843 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2844 p->error_indicator = 1;
2845 D(p->level--);
2846 return NULL;
2847 }
2848 int _start_lineno = p->tokens[_mark]->lineno;
2849 UNUSED(_start_lineno); // Only used by EXTRA macro
2850 int _start_col_offset = p->tokens[_mark]->col_offset;
2851 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002852 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002853 if (p->error_indicator) {
2854 D(p->level--);
2855 return NULL;
2856 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002857 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 +01002858 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002859 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002860 if (
2861 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
2862 &&
2863 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002864 &&
2865 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002866 )
2867 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002868 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 +01002869 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2870 if (_token == NULL) {
2871 D(p->level--);
2872 return NULL;
2873 }
2874 int _end_lineno = _token->end_lineno;
2875 UNUSED(_end_lineno); // Only used by EXTRA macro
2876 int _end_col_offset = _token->end_col_offset;
2877 UNUSED(_end_col_offset); // Only used by EXTRA macro
2878 _res = _Py_Delete ( a , EXTRA );
2879 if (_res == NULL && PyErr_Occurred()) {
2880 p->error_indicator = 1;
2881 D(p->level--);
2882 return NULL;
2883 }
2884 goto done;
2885 }
2886 p->mark = _mark;
2887 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2889 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002890 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002891 if (p->error_indicator) {
2892 D(p->level--);
2893 return NULL;
2894 }
2895 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2896 void *invalid_del_stmt_var;
2897 if (
2898 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2899 )
2900 {
2901 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2902 _res = invalid_del_stmt_var;
2903 goto done;
2904 }
2905 p->mark = _mark;
2906 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002908 }
2909 _res = NULL;
2910 done:
2911 D(p->level--);
2912 return _res;
2913}
2914
2915// import_stmt: import_name | import_from
2916static stmt_ty
2917import_stmt_rule(Parser *p)
2918{
2919 D(p->level++);
2920 if (p->error_indicator) {
2921 D(p->level--);
2922 return NULL;
2923 }
2924 stmt_ty _res = NULL;
2925 int _mark = p->mark;
2926 { // import_name
2927 if (p->error_indicator) {
2928 D(p->level--);
2929 return NULL;
2930 }
2931 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
2932 stmt_ty import_name_var;
2933 if (
2934 (import_name_var = import_name_rule(p)) // import_name
2935 )
2936 {
2937 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
2938 _res = import_name_var;
2939 goto done;
2940 }
2941 p->mark = _mark;
2942 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
2944 }
2945 { // import_from
2946 if (p->error_indicator) {
2947 D(p->level--);
2948 return NULL;
2949 }
2950 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
2951 stmt_ty import_from_var;
2952 if (
2953 (import_from_var = import_from_rule(p)) // import_from
2954 )
2955 {
2956 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
2957 _res = import_from_var;
2958 goto done;
2959 }
2960 p->mark = _mark;
2961 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
2963 }
2964 _res = NULL;
2965 done:
2966 D(p->level--);
2967 return _res;
2968}
2969
2970// import_name: 'import' dotted_as_names
2971static stmt_ty
2972import_name_rule(Parser *p)
2973{
2974 D(p->level++);
2975 if (p->error_indicator) {
2976 D(p->level--);
2977 return NULL;
2978 }
2979 stmt_ty _res = NULL;
2980 int _mark = p->mark;
2981 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2982 p->error_indicator = 1;
2983 D(p->level--);
2984 return NULL;
2985 }
2986 int _start_lineno = p->tokens[_mark]->lineno;
2987 UNUSED(_start_lineno); // Only used by EXTRA macro
2988 int _start_col_offset = p->tokens[_mark]->col_offset;
2989 UNUSED(_start_col_offset); // Only used by EXTRA macro
2990 { // 'import' dotted_as_names
2991 if (p->error_indicator) {
2992 D(p->level--);
2993 return NULL;
2994 }
2995 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
2996 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002997 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002998 if (
2999 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3000 &&
3001 (a = dotted_as_names_rule(p)) // dotted_as_names
3002 )
3003 {
3004 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3005 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3006 if (_token == NULL) {
3007 D(p->level--);
3008 return NULL;
3009 }
3010 int _end_lineno = _token->end_lineno;
3011 UNUSED(_end_lineno); // Only used by EXTRA macro
3012 int _end_col_offset = _token->end_col_offset;
3013 UNUSED(_end_col_offset); // Only used by EXTRA macro
3014 _res = _Py_Import ( a , EXTRA );
3015 if (_res == NULL && PyErr_Occurred()) {
3016 p->error_indicator = 1;
3017 D(p->level--);
3018 return NULL;
3019 }
3020 goto done;
3021 }
3022 p->mark = _mark;
3023 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3025 }
3026 _res = NULL;
3027 done:
3028 D(p->level--);
3029 return _res;
3030}
3031
3032// import_from:
3033// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3034// | 'from' (('.' | '...'))+ 'import' import_from_targets
3035static stmt_ty
3036import_from_rule(Parser *p)
3037{
3038 D(p->level++);
3039 if (p->error_indicator) {
3040 D(p->level--);
3041 return NULL;
3042 }
3043 stmt_ty _res = NULL;
3044 int _mark = p->mark;
3045 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3046 p->error_indicator = 1;
3047 D(p->level--);
3048 return NULL;
3049 }
3050 int _start_lineno = p->tokens[_mark]->lineno;
3051 UNUSED(_start_lineno); // Only used by EXTRA macro
3052 int _start_col_offset = p->tokens[_mark]->col_offset;
3053 UNUSED(_start_col_offset); // Only used by EXTRA macro
3054 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3055 if (p->error_indicator) {
3056 D(p->level--);
3057 return NULL;
3058 }
3059 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3060 Token * _keyword;
3061 Token * _keyword_1;
3062 asdl_seq * a;
3063 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003064 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003065 if (
3066 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3067 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003068 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003069 &&
3070 (b = dotted_name_rule(p)) // dotted_name
3071 &&
3072 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3073 &&
3074 (c = import_from_targets_rule(p)) // import_from_targets
3075 )
3076 {
3077 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3078 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3079 if (_token == NULL) {
3080 D(p->level--);
3081 return NULL;
3082 }
3083 int _end_lineno = _token->end_lineno;
3084 UNUSED(_end_lineno); // Only used by EXTRA macro
3085 int _end_col_offset = _token->end_col_offset;
3086 UNUSED(_end_col_offset); // Only used by EXTRA macro
3087 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3088 if (_res == NULL && PyErr_Occurred()) {
3089 p->error_indicator = 1;
3090 D(p->level--);
3091 return NULL;
3092 }
3093 goto done;
3094 }
3095 p->mark = _mark;
3096 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3098 }
3099 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3100 if (p->error_indicator) {
3101 D(p->level--);
3102 return NULL;
3103 }
3104 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3105 Token * _keyword;
3106 Token * _keyword_1;
3107 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003108 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003109 if (
3110 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3111 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003112 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003113 &&
3114 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3115 &&
3116 (b = import_from_targets_rule(p)) // import_from_targets
3117 )
3118 {
3119 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3120 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3121 if (_token == NULL) {
3122 D(p->level--);
3123 return NULL;
3124 }
3125 int _end_lineno = _token->end_lineno;
3126 UNUSED(_end_lineno); // Only used by EXTRA macro
3127 int _end_col_offset = _token->end_col_offset;
3128 UNUSED(_end_col_offset); // Only used by EXTRA macro
3129 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3130 if (_res == NULL && PyErr_Occurred()) {
3131 p->error_indicator = 1;
3132 D(p->level--);
3133 return NULL;
3134 }
3135 goto done;
3136 }
3137 p->mark = _mark;
3138 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3140 }
3141 _res = NULL;
3142 done:
3143 D(p->level--);
3144 return _res;
3145}
3146
3147// import_from_targets:
3148// | '(' import_from_as_names ','? ')'
3149// | import_from_as_names !','
3150// | '*'
3151// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003152static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003153import_from_targets_rule(Parser *p)
3154{
3155 D(p->level++);
3156 if (p->error_indicator) {
3157 D(p->level--);
3158 return NULL;
3159 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003160 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003161 int _mark = p->mark;
3162 { // '(' import_from_as_names ','? ')'
3163 if (p->error_indicator) {
3164 D(p->level--);
3165 return NULL;
3166 }
3167 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3168 Token * _literal;
3169 Token * _literal_1;
3170 void *_opt_var;
3171 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003172 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003173 if (
3174 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3175 &&
3176 (a = import_from_as_names_rule(p)) // import_from_as_names
3177 &&
3178 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3179 &&
3180 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3181 )
3182 {
3183 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3184 _res = a;
3185 if (_res == NULL && PyErr_Occurred()) {
3186 p->error_indicator = 1;
3187 D(p->level--);
3188 return NULL;
3189 }
3190 goto done;
3191 }
3192 p->mark = _mark;
3193 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3195 }
3196 { // import_from_as_names !','
3197 if (p->error_indicator) {
3198 D(p->level--);
3199 return NULL;
3200 }
3201 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 +01003202 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003203 if (
3204 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3205 &&
3206 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3207 )
3208 {
3209 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3210 _res = import_from_as_names_var;
3211 goto done;
3212 }
3213 p->mark = _mark;
3214 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3216 }
3217 { // '*'
3218 if (p->error_indicator) {
3219 D(p->level--);
3220 return NULL;
3221 }
3222 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3223 Token * _literal;
3224 if (
3225 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3226 )
3227 {
3228 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003229 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003230 if (_res == NULL && PyErr_Occurred()) {
3231 p->error_indicator = 1;
3232 D(p->level--);
3233 return NULL;
3234 }
3235 goto done;
3236 }
3237 p->mark = _mark;
3238 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3240 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003241 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003242 if (p->error_indicator) {
3243 D(p->level--);
3244 return NULL;
3245 }
3246 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3247 void *invalid_import_from_targets_var;
3248 if (
3249 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3250 )
3251 {
3252 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3253 _res = invalid_import_from_targets_var;
3254 goto done;
3255 }
3256 p->mark = _mark;
3257 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3259 }
3260 _res = NULL;
3261 done:
3262 D(p->level--);
3263 return _res;
3264}
3265
3266// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003267static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003268import_from_as_names_rule(Parser *p)
3269{
3270 D(p->level++);
3271 if (p->error_indicator) {
3272 D(p->level--);
3273 return NULL;
3274 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003275 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003276 int _mark = p->mark;
3277 { // ','.import_from_as_name+
3278 if (p->error_indicator) {
3279 D(p->level--);
3280 return NULL;
3281 }
3282 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 +01003283 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003284 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003285 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003286 )
3287 {
3288 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3289 _res = a;
3290 if (_res == NULL && PyErr_Occurred()) {
3291 p->error_indicator = 1;
3292 D(p->level--);
3293 return NULL;
3294 }
3295 goto done;
3296 }
3297 p->mark = _mark;
3298 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3300 }
3301 _res = NULL;
3302 done:
3303 D(p->level--);
3304 return _res;
3305}
3306
3307// import_from_as_name: NAME ['as' NAME]
3308static alias_ty
3309import_from_as_name_rule(Parser *p)
3310{
3311 D(p->level++);
3312 if (p->error_indicator) {
3313 D(p->level--);
3314 return NULL;
3315 }
3316 alias_ty _res = NULL;
3317 int _mark = p->mark;
3318 { // NAME ['as' NAME]
3319 if (p->error_indicator) {
3320 D(p->level--);
3321 return NULL;
3322 }
3323 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3324 expr_ty a;
3325 void *b;
3326 if (
3327 (a = _PyPegen_name_token(p)) // NAME
3328 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003329 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003330 )
3331 {
3332 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3333 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3334 if (_res == NULL && PyErr_Occurred()) {
3335 p->error_indicator = 1;
3336 D(p->level--);
3337 return NULL;
3338 }
3339 goto done;
3340 }
3341 p->mark = _mark;
3342 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3344 }
3345 _res = NULL;
3346 done:
3347 D(p->level--);
3348 return _res;
3349}
3350
3351// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003352static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003353dotted_as_names_rule(Parser *p)
3354{
3355 D(p->level++);
3356 if (p->error_indicator) {
3357 D(p->level--);
3358 return NULL;
3359 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003360 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003361 int _mark = p->mark;
3362 { // ','.dotted_as_name+
3363 if (p->error_indicator) {
3364 D(p->level--);
3365 return NULL;
3366 }
3367 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 +01003368 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003369 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003370 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003371 )
3372 {
3373 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3374 _res = a;
3375 if (_res == NULL && PyErr_Occurred()) {
3376 p->error_indicator = 1;
3377 D(p->level--);
3378 return NULL;
3379 }
3380 goto done;
3381 }
3382 p->mark = _mark;
3383 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3385 }
3386 _res = NULL;
3387 done:
3388 D(p->level--);
3389 return _res;
3390}
3391
3392// dotted_as_name: dotted_name ['as' NAME]
3393static alias_ty
3394dotted_as_name_rule(Parser *p)
3395{
3396 D(p->level++);
3397 if (p->error_indicator) {
3398 D(p->level--);
3399 return NULL;
3400 }
3401 alias_ty _res = NULL;
3402 int _mark = p->mark;
3403 { // dotted_name ['as' NAME]
3404 if (p->error_indicator) {
3405 D(p->level--);
3406 return NULL;
3407 }
3408 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3409 expr_ty a;
3410 void *b;
3411 if (
3412 (a = dotted_name_rule(p)) // dotted_name
3413 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003414 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003415 )
3416 {
3417 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3418 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3419 if (_res == NULL && PyErr_Occurred()) {
3420 p->error_indicator = 1;
3421 D(p->level--);
3422 return NULL;
3423 }
3424 goto done;
3425 }
3426 p->mark = _mark;
3427 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3429 }
3430 _res = NULL;
3431 done:
3432 D(p->level--);
3433 return _res;
3434}
3435
3436// Left-recursive
3437// dotted_name: dotted_name '.' NAME | NAME
3438static expr_ty dotted_name_raw(Parser *);
3439static expr_ty
3440dotted_name_rule(Parser *p)
3441{
3442 D(p->level++);
3443 expr_ty _res = NULL;
3444 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3445 D(p->level--);
3446 return _res;
3447 }
3448 int _mark = p->mark;
3449 int _resmark = p->mark;
3450 while (1) {
3451 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3452 if (tmpvar_0) {
3453 D(p->level--);
3454 return _res;
3455 }
3456 p->mark = _mark;
3457 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003458 if (p->error_indicator)
3459 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003460 if (_raw == NULL || p->mark <= _resmark)
3461 break;
3462 _resmark = p->mark;
3463 _res = _raw;
3464 }
3465 p->mark = _resmark;
3466 D(p->level--);
3467 return _res;
3468}
3469static expr_ty
3470dotted_name_raw(Parser *p)
3471{
3472 D(p->level++);
3473 if (p->error_indicator) {
3474 D(p->level--);
3475 return NULL;
3476 }
3477 expr_ty _res = NULL;
3478 int _mark = p->mark;
3479 { // dotted_name '.' NAME
3480 if (p->error_indicator) {
3481 D(p->level--);
3482 return NULL;
3483 }
3484 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3485 Token * _literal;
3486 expr_ty a;
3487 expr_ty b;
3488 if (
3489 (a = dotted_name_rule(p)) // dotted_name
3490 &&
3491 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3492 &&
3493 (b = _PyPegen_name_token(p)) // NAME
3494 )
3495 {
3496 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3497 _res = _PyPegen_join_names_with_dot ( p , a , b );
3498 if (_res == NULL && PyErr_Occurred()) {
3499 p->error_indicator = 1;
3500 D(p->level--);
3501 return NULL;
3502 }
3503 goto done;
3504 }
3505 p->mark = _mark;
3506 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3508 }
3509 { // 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, "NAME"));
3515 expr_ty name_var;
3516 if (
3517 (name_var = _PyPegen_name_token(p)) // NAME
3518 )
3519 {
3520 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3521 _res = name_var;
3522 goto done;
3523 }
3524 p->mark = _mark;
3525 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3527 }
3528 _res = NULL;
3529 done:
3530 D(p->level--);
3531 return _res;
3532}
3533
3534// if_stmt:
3535// | 'if' named_expression ':' block elif_stmt
3536// | 'if' named_expression ':' block else_block?
3537static stmt_ty
3538if_stmt_rule(Parser *p)
3539{
3540 D(p->level++);
3541 if (p->error_indicator) {
3542 D(p->level--);
3543 return NULL;
3544 }
3545 stmt_ty _res = NULL;
3546 int _mark = p->mark;
3547 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3548 p->error_indicator = 1;
3549 D(p->level--);
3550 return NULL;
3551 }
3552 int _start_lineno = p->tokens[_mark]->lineno;
3553 UNUSED(_start_lineno); // Only used by EXTRA macro
3554 int _start_col_offset = p->tokens[_mark]->col_offset;
3555 UNUSED(_start_col_offset); // Only used by EXTRA macro
3556 { // 'if' named_expression ':' block elif_stmt
3557 if (p->error_indicator) {
3558 D(p->level--);
3559 return NULL;
3560 }
3561 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
3562 Token * _keyword;
3563 Token * _literal;
3564 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003565 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003566 stmt_ty c;
3567 if (
3568 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3569 &&
3570 (a = named_expression_rule(p)) // named_expression
3571 &&
3572 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3573 &&
3574 (b = block_rule(p)) // block
3575 &&
3576 (c = elif_stmt_rule(p)) // elif_stmt
3577 )
3578 {
3579 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
3580 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3581 if (_token == NULL) {
3582 D(p->level--);
3583 return NULL;
3584 }
3585 int _end_lineno = _token->end_lineno;
3586 UNUSED(_end_lineno); // Only used by EXTRA macro
3587 int _end_col_offset = _token->end_col_offset;
3588 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003589 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003590 if (_res == NULL && PyErr_Occurred()) {
3591 p->error_indicator = 1;
3592 D(p->level--);
3593 return NULL;
3594 }
3595 goto done;
3596 }
3597 p->mark = _mark;
3598 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
3600 }
3601 { // 'if' named_expression ':' block else_block?
3602 if (p->error_indicator) {
3603 D(p->level--);
3604 return NULL;
3605 }
3606 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
3607 Token * _keyword;
3608 Token * _literal;
3609 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003610 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003611 void *c;
3612 if (
3613 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3614 &&
3615 (a = named_expression_rule(p)) // named_expression
3616 &&
3617 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3618 &&
3619 (b = block_rule(p)) // block
3620 &&
3621 (c = else_block_rule(p), 1) // else_block?
3622 )
3623 {
3624 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
3625 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3626 if (_token == NULL) {
3627 D(p->level--);
3628 return NULL;
3629 }
3630 int _end_lineno = _token->end_lineno;
3631 UNUSED(_end_lineno); // Only used by EXTRA macro
3632 int _end_col_offset = _token->end_col_offset;
3633 UNUSED(_end_col_offset); // Only used by EXTRA macro
3634 _res = _Py_If ( a , b , c , EXTRA );
3635 if (_res == NULL && PyErr_Occurred()) {
3636 p->error_indicator = 1;
3637 D(p->level--);
3638 return NULL;
3639 }
3640 goto done;
3641 }
3642 p->mark = _mark;
3643 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3645 }
3646 _res = NULL;
3647 done:
3648 D(p->level--);
3649 return _res;
3650}
3651
3652// elif_stmt:
3653// | 'elif' named_expression ':' block elif_stmt
3654// | 'elif' named_expression ':' block else_block?
3655static stmt_ty
3656elif_stmt_rule(Parser *p)
3657{
3658 D(p->level++);
3659 if (p->error_indicator) {
3660 D(p->level--);
3661 return NULL;
3662 }
3663 stmt_ty _res = NULL;
3664 int _mark = p->mark;
3665 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3666 p->error_indicator = 1;
3667 D(p->level--);
3668 return NULL;
3669 }
3670 int _start_lineno = p->tokens[_mark]->lineno;
3671 UNUSED(_start_lineno); // Only used by EXTRA macro
3672 int _start_col_offset = p->tokens[_mark]->col_offset;
3673 UNUSED(_start_col_offset); // Only used by EXTRA macro
3674 { // 'elif' named_expression ':' block elif_stmt
3675 if (p->error_indicator) {
3676 D(p->level--);
3677 return NULL;
3678 }
3679 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
3680 Token * _keyword;
3681 Token * _literal;
3682 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003683 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003684 stmt_ty c;
3685 if (
3686 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3687 &&
3688 (a = named_expression_rule(p)) // named_expression
3689 &&
3690 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3691 &&
3692 (b = block_rule(p)) // block
3693 &&
3694 (c = elif_stmt_rule(p)) // elif_stmt
3695 )
3696 {
3697 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
3698 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3699 if (_token == NULL) {
3700 D(p->level--);
3701 return NULL;
3702 }
3703 int _end_lineno = _token->end_lineno;
3704 UNUSED(_end_lineno); // Only used by EXTRA macro
3705 int _end_col_offset = _token->end_col_offset;
3706 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003707 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003708 if (_res == NULL && PyErr_Occurred()) {
3709 p->error_indicator = 1;
3710 D(p->level--);
3711 return NULL;
3712 }
3713 goto done;
3714 }
3715 p->mark = _mark;
3716 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
3718 }
3719 { // 'elif' named_expression ':' block else_block?
3720 if (p->error_indicator) {
3721 D(p->level--);
3722 return NULL;
3723 }
3724 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
3725 Token * _keyword;
3726 Token * _literal;
3727 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003728 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003729 void *c;
3730 if (
3731 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3732 &&
3733 (a = named_expression_rule(p)) // named_expression
3734 &&
3735 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3736 &&
3737 (b = block_rule(p)) // block
3738 &&
3739 (c = else_block_rule(p), 1) // else_block?
3740 )
3741 {
3742 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
3743 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3744 if (_token == NULL) {
3745 D(p->level--);
3746 return NULL;
3747 }
3748 int _end_lineno = _token->end_lineno;
3749 UNUSED(_end_lineno); // Only used by EXTRA macro
3750 int _end_col_offset = _token->end_col_offset;
3751 UNUSED(_end_col_offset); // Only used by EXTRA macro
3752 _res = _Py_If ( a , b , c , EXTRA );
3753 if (_res == NULL && PyErr_Occurred()) {
3754 p->error_indicator = 1;
3755 D(p->level--);
3756 return NULL;
3757 }
3758 goto done;
3759 }
3760 p->mark = _mark;
3761 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
3763 }
3764 _res = NULL;
3765 done:
3766 D(p->level--);
3767 return _res;
3768}
3769
3770// else_block: 'else' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01003771static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003772else_block_rule(Parser *p)
3773{
3774 D(p->level++);
3775 if (p->error_indicator) {
3776 D(p->level--);
3777 return NULL;
3778 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003779 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003780 int _mark = p->mark;
3781 { // 'else' ':' block
3782 if (p->error_indicator) {
3783 D(p->level--);
3784 return NULL;
3785 }
3786 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
3787 Token * _keyword;
3788 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003789 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003790 if (
3791 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
3792 &&
3793 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3794 &&
3795 (b = block_rule(p)) // block
3796 )
3797 {
3798 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
3799 _res = b;
3800 if (_res == NULL && PyErr_Occurred()) {
3801 p->error_indicator = 1;
3802 D(p->level--);
3803 return NULL;
3804 }
3805 goto done;
3806 }
3807 p->mark = _mark;
3808 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
3810 }
3811 _res = NULL;
3812 done:
3813 D(p->level--);
3814 return _res;
3815}
3816
3817// while_stmt: 'while' named_expression ':' block else_block?
3818static stmt_ty
3819while_stmt_rule(Parser *p)
3820{
3821 D(p->level++);
3822 if (p->error_indicator) {
3823 D(p->level--);
3824 return NULL;
3825 }
3826 stmt_ty _res = NULL;
3827 int _mark = p->mark;
3828 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3829 p->error_indicator = 1;
3830 D(p->level--);
3831 return NULL;
3832 }
3833 int _start_lineno = p->tokens[_mark]->lineno;
3834 UNUSED(_start_lineno); // Only used by EXTRA macro
3835 int _start_col_offset = p->tokens[_mark]->col_offset;
3836 UNUSED(_start_col_offset); // Only used by EXTRA macro
3837 { // 'while' named_expression ':' block else_block?
3838 if (p->error_indicator) {
3839 D(p->level--);
3840 return NULL;
3841 }
3842 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
3843 Token * _keyword;
3844 Token * _literal;
3845 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003846 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003847 void *c;
3848 if (
3849 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
3850 &&
3851 (a = named_expression_rule(p)) // named_expression
3852 &&
3853 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3854 &&
3855 (b = block_rule(p)) // block
3856 &&
3857 (c = else_block_rule(p), 1) // else_block?
3858 )
3859 {
3860 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
3861 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3862 if (_token == NULL) {
3863 D(p->level--);
3864 return NULL;
3865 }
3866 int _end_lineno = _token->end_lineno;
3867 UNUSED(_end_lineno); // Only used by EXTRA macro
3868 int _end_col_offset = _token->end_col_offset;
3869 UNUSED(_end_col_offset); // Only used by EXTRA macro
3870 _res = _Py_While ( a , b , c , EXTRA );
3871 if (_res == NULL && PyErr_Occurred()) {
3872 p->error_indicator = 1;
3873 D(p->level--);
3874 return NULL;
3875 }
3876 goto done;
3877 }
3878 p->mark = _mark;
3879 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
3881 }
3882 _res = NULL;
3883 done:
3884 D(p->level--);
3885 return _res;
3886}
3887
3888// for_stmt:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003889// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3890// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3891// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003892static stmt_ty
3893for_stmt_rule(Parser *p)
3894{
3895 D(p->level++);
3896 if (p->error_indicator) {
3897 D(p->level--);
3898 return NULL;
3899 }
3900 stmt_ty _res = NULL;
3901 int _mark = p->mark;
3902 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3903 p->error_indicator = 1;
3904 D(p->level--);
3905 return NULL;
3906 }
3907 int _start_lineno = p->tokens[_mark]->lineno;
3908 UNUSED(_start_lineno); // Only used by EXTRA macro
3909 int _start_col_offset = p->tokens[_mark]->col_offset;
3910 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003911 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003912 if (p->error_indicator) {
3913 D(p->level--);
3914 return NULL;
3915 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003916 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?"));
3917 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003918 Token * _keyword;
3919 Token * _keyword_1;
3920 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003921 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003922 void *el;
3923 expr_ty ex;
3924 expr_ty t;
3925 void *tc;
3926 if (
3927 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
3928 &&
3929 (t = star_targets_rule(p)) // star_targets
3930 &&
3931 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
3932 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003933 (_cut_var = 1)
3934 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003935 (ex = star_expressions_rule(p)) // star_expressions
3936 &&
3937 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3938 &&
3939 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
3940 &&
3941 (b = block_rule(p)) // block
3942 &&
3943 (el = else_block_rule(p), 1) // else_block?
3944 )
3945 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003946 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 +01003947 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3948 if (_token == NULL) {
3949 D(p->level--);
3950 return NULL;
3951 }
3952 int _end_lineno = _token->end_lineno;
3953 UNUSED(_end_lineno); // Only used by EXTRA macro
3954 int _end_col_offset = _token->end_col_offset;
3955 UNUSED(_end_col_offset); // Only used by EXTRA macro
3956 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3957 if (_res == NULL && PyErr_Occurred()) {
3958 p->error_indicator = 1;
3959 D(p->level--);
3960 return NULL;
3961 }
3962 goto done;
3963 }
3964 p->mark = _mark;
3965 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
3967 if (_cut_var) {
3968 D(p->level--);
3969 return NULL;
3970 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003971 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003972 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003973 if (p->error_indicator) {
3974 D(p->level--);
3975 return NULL;
3976 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003977 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?"));
3978 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003979 Token * _keyword;
3980 Token * _keyword_1;
3981 Token * _literal;
3982 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003983 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003984 void *el;
3985 expr_ty ex;
3986 expr_ty t;
3987 void *tc;
3988 if (
3989 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
3990 &&
3991 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
3992 &&
3993 (t = star_targets_rule(p)) // star_targets
3994 &&
3995 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
3996 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003997 (_cut_var = 1)
3998 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003999 (ex = star_expressions_rule(p)) // star_expressions
4000 &&
4001 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4002 &&
4003 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4004 &&
4005 (b = block_rule(p)) // block
4006 &&
4007 (el = else_block_rule(p), 1) // else_block?
4008 )
4009 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004010 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 +01004011 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4012 if (_token == NULL) {
4013 D(p->level--);
4014 return NULL;
4015 }
4016 int _end_lineno = _token->end_lineno;
4017 UNUSED(_end_lineno); // Only used by EXTRA macro
4018 int _end_col_offset = _token->end_col_offset;
4019 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004020 _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 +01004021 if (_res == NULL && PyErr_Occurred()) {
4022 p->error_indicator = 1;
4023 D(p->level--);
4024 return NULL;
4025 }
4026 goto done;
4027 }
4028 p->mark = _mark;
4029 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
4031 if (_cut_var) {
4032 D(p->level--);
4033 return NULL;
4034 }
4035 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004036 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004037 if (p->error_indicator) {
4038 D(p->level--);
4039 return NULL;
4040 }
4041 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4042 void *invalid_for_target_var;
4043 if (
4044 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4045 )
4046 {
4047 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4048 _res = invalid_for_target_var;
4049 goto done;
4050 }
4051 p->mark = _mark;
4052 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004054 }
4055 _res = NULL;
4056 done:
4057 D(p->level--);
4058 return _res;
4059}
4060
4061// with_stmt:
4062// | 'with' '(' ','.with_item+ ','? ')' ':' block
4063// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4064// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4065// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4066static stmt_ty
4067with_stmt_rule(Parser *p)
4068{
4069 D(p->level++);
4070 if (p->error_indicator) {
4071 D(p->level--);
4072 return NULL;
4073 }
4074 stmt_ty _res = NULL;
4075 int _mark = p->mark;
4076 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4077 p->error_indicator = 1;
4078 D(p->level--);
4079 return NULL;
4080 }
4081 int _start_lineno = p->tokens[_mark]->lineno;
4082 UNUSED(_start_lineno); // Only used by EXTRA macro
4083 int _start_col_offset = p->tokens[_mark]->col_offset;
4084 UNUSED(_start_col_offset); // Only used by EXTRA macro
4085 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4086 if (p->error_indicator) {
4087 D(p->level--);
4088 return NULL;
4089 }
4090 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4091 Token * _keyword;
4092 Token * _literal;
4093 Token * _literal_1;
4094 Token * _literal_2;
4095 void *_opt_var;
4096 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004097 asdl_withitem_seq* a;
4098 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004099 if (
4100 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4101 &&
4102 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4103 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004104 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004105 &&
4106 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4107 &&
4108 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4109 &&
4110 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4111 &&
4112 (b = block_rule(p)) // block
4113 )
4114 {
4115 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4116 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4117 if (_token == NULL) {
4118 D(p->level--);
4119 return NULL;
4120 }
4121 int _end_lineno = _token->end_lineno;
4122 UNUSED(_end_lineno); // Only used by EXTRA macro
4123 int _end_col_offset = _token->end_col_offset;
4124 UNUSED(_end_col_offset); // Only used by EXTRA macro
4125 _res = _Py_With ( a , b , NULL , EXTRA );
4126 if (_res == NULL && PyErr_Occurred()) {
4127 p->error_indicator = 1;
4128 D(p->level--);
4129 return NULL;
4130 }
4131 goto done;
4132 }
4133 p->mark = _mark;
4134 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4136 }
4137 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4138 if (p->error_indicator) {
4139 D(p->level--);
4140 return NULL;
4141 }
4142 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4143 Token * _keyword;
4144 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004145 asdl_withitem_seq* a;
4146 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004147 void *tc;
4148 if (
4149 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4150 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004151 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004152 &&
4153 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4154 &&
4155 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4156 &&
4157 (b = block_rule(p)) // block
4158 )
4159 {
4160 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4161 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4162 if (_token == NULL) {
4163 D(p->level--);
4164 return NULL;
4165 }
4166 int _end_lineno = _token->end_lineno;
4167 UNUSED(_end_lineno); // Only used by EXTRA macro
4168 int _end_col_offset = _token->end_col_offset;
4169 UNUSED(_end_col_offset); // Only used by EXTRA macro
4170 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4171 if (_res == NULL && PyErr_Occurred()) {
4172 p->error_indicator = 1;
4173 D(p->level--);
4174 return NULL;
4175 }
4176 goto done;
4177 }
4178 p->mark = _mark;
4179 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4181 }
4182 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4183 if (p->error_indicator) {
4184 D(p->level--);
4185 return NULL;
4186 }
4187 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4188 Token * _keyword;
4189 Token * _literal;
4190 Token * _literal_1;
4191 Token * _literal_2;
4192 void *_opt_var;
4193 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004194 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004195 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004196 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004197 if (
4198 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4199 &&
4200 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4201 &&
4202 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4203 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004204 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004205 &&
4206 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4207 &&
4208 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4209 &&
4210 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4211 &&
4212 (b = block_rule(p)) // block
4213 )
4214 {
4215 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4216 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4217 if (_token == NULL) {
4218 D(p->level--);
4219 return NULL;
4220 }
4221 int _end_lineno = _token->end_lineno;
4222 UNUSED(_end_lineno); // Only used by EXTRA macro
4223 int _end_col_offset = _token->end_col_offset;
4224 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004225 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004226 if (_res == NULL && PyErr_Occurred()) {
4227 p->error_indicator = 1;
4228 D(p->level--);
4229 return NULL;
4230 }
4231 goto done;
4232 }
4233 p->mark = _mark;
4234 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4236 }
4237 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4238 if (p->error_indicator) {
4239 D(p->level--);
4240 return NULL;
4241 }
4242 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4243 Token * _keyword;
4244 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004245 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004246 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004247 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004248 void *tc;
4249 if (
4250 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4251 &&
4252 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4253 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004254 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004255 &&
4256 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4257 &&
4258 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4259 &&
4260 (b = block_rule(p)) // block
4261 )
4262 {
4263 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4264 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4265 if (_token == NULL) {
4266 D(p->level--);
4267 return NULL;
4268 }
4269 int _end_lineno = _token->end_lineno;
4270 UNUSED(_end_lineno); // Only used by EXTRA macro
4271 int _end_col_offset = _token->end_col_offset;
4272 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004273 _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 +01004274 if (_res == NULL && PyErr_Occurred()) {
4275 p->error_indicator = 1;
4276 D(p->level--);
4277 return NULL;
4278 }
4279 goto done;
4280 }
4281 p->mark = _mark;
4282 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4284 }
4285 _res = NULL;
4286 done:
4287 D(p->level--);
4288 return _res;
4289}
4290
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004291// with_item:
4292// | expression 'as' star_target &(',' | ')' | ':')
4293// | invalid_with_item
4294// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004295static withitem_ty
4296with_item_rule(Parser *p)
4297{
4298 D(p->level++);
4299 if (p->error_indicator) {
4300 D(p->level--);
4301 return NULL;
4302 }
4303 withitem_ty _res = NULL;
4304 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004305 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004306 if (p->error_indicator) {
4307 D(p->level--);
4308 return NULL;
4309 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004310 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 +03004311 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004312 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004313 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004314 if (
4315 (e = expression_rule(p)) // expression
4316 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004317 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4318 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004319 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004320 &&
4321 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004322 )
4323 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004324 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 +03004325 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004326 if (_res == NULL && PyErr_Occurred()) {
4327 p->error_indicator = 1;
4328 D(p->level--);
4329 return NULL;
4330 }
4331 goto done;
4332 }
4333 p->mark = _mark;
4334 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004336 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004337 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004338 if (p->error_indicator) {
4339 D(p->level--);
4340 return NULL;
4341 }
4342 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4343 void *invalid_with_item_var;
4344 if (
4345 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4346 )
4347 {
4348 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4349 _res = invalid_with_item_var;
4350 goto done;
4351 }
4352 p->mark = _mark;
4353 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4355 }
4356 { // expression
4357 if (p->error_indicator) {
4358 D(p->level--);
4359 return NULL;
4360 }
4361 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4362 expr_ty e;
4363 if (
4364 (e = expression_rule(p)) // expression
4365 )
4366 {
4367 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4368 _res = _Py_withitem ( e , NULL , p -> arena );
4369 if (_res == NULL && PyErr_Occurred()) {
4370 p->error_indicator = 1;
4371 D(p->level--);
4372 return NULL;
4373 }
4374 goto done;
4375 }
4376 p->mark = _mark;
4377 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004379 }
4380 _res = NULL;
4381 done:
4382 D(p->level--);
4383 return _res;
4384}
4385
4386// try_stmt:
4387// | 'try' ':' block finally_block
4388// | 'try' ':' block except_block+ else_block? finally_block?
4389static stmt_ty
4390try_stmt_rule(Parser *p)
4391{
4392 D(p->level++);
4393 if (p->error_indicator) {
4394 D(p->level--);
4395 return NULL;
4396 }
4397 stmt_ty _res = NULL;
4398 int _mark = p->mark;
4399 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4400 p->error_indicator = 1;
4401 D(p->level--);
4402 return NULL;
4403 }
4404 int _start_lineno = p->tokens[_mark]->lineno;
4405 UNUSED(_start_lineno); // Only used by EXTRA macro
4406 int _start_col_offset = p->tokens[_mark]->col_offset;
4407 UNUSED(_start_col_offset); // Only used by EXTRA macro
4408 { // 'try' ':' block finally_block
4409 if (p->error_indicator) {
4410 D(p->level--);
4411 return NULL;
4412 }
4413 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
4414 Token * _keyword;
4415 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004416 asdl_stmt_seq* b;
4417 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004418 if (
4419 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4420 &&
4421 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4422 &&
4423 (b = block_rule(p)) // block
4424 &&
4425 (f = finally_block_rule(p)) // finally_block
4426 )
4427 {
4428 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
4429 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4430 if (_token == NULL) {
4431 D(p->level--);
4432 return NULL;
4433 }
4434 int _end_lineno = _token->end_lineno;
4435 UNUSED(_end_lineno); // Only used by EXTRA macro
4436 int _end_col_offset = _token->end_col_offset;
4437 UNUSED(_end_col_offset); // Only used by EXTRA macro
4438 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4439 if (_res == NULL && PyErr_Occurred()) {
4440 p->error_indicator = 1;
4441 D(p->level--);
4442 return NULL;
4443 }
4444 goto done;
4445 }
4446 p->mark = _mark;
4447 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
4449 }
4450 { // 'try' ':' block except_block+ else_block? finally_block?
4451 if (p->error_indicator) {
4452 D(p->level--);
4453 return NULL;
4454 }
4455 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
4456 Token * _keyword;
4457 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004458 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004459 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004460 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004461 void *f;
4462 if (
4463 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4464 &&
4465 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4466 &&
4467 (b = block_rule(p)) // block
4468 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004469 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004470 &&
4471 (el = else_block_rule(p), 1) // else_block?
4472 &&
4473 (f = finally_block_rule(p), 1) // finally_block?
4474 )
4475 {
4476 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
4477 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4478 if (_token == NULL) {
4479 D(p->level--);
4480 return NULL;
4481 }
4482 int _end_lineno = _token->end_lineno;
4483 UNUSED(_end_lineno); // Only used by EXTRA macro
4484 int _end_col_offset = _token->end_col_offset;
4485 UNUSED(_end_col_offset); // Only used by EXTRA macro
4486 _res = _Py_Try ( b , ex , el , f , EXTRA );
4487 if (_res == NULL && PyErr_Occurred()) {
4488 p->error_indicator = 1;
4489 D(p->level--);
4490 return NULL;
4491 }
4492 goto done;
4493 }
4494 p->mark = _mark;
4495 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
4497 }
4498 _res = NULL;
4499 done:
4500 D(p->level--);
4501 return _res;
4502}
4503
4504// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
4505static excepthandler_ty
4506except_block_rule(Parser *p)
4507{
4508 D(p->level++);
4509 if (p->error_indicator) {
4510 D(p->level--);
4511 return NULL;
4512 }
4513 excepthandler_ty _res = NULL;
4514 int _mark = p->mark;
4515 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4516 p->error_indicator = 1;
4517 D(p->level--);
4518 return NULL;
4519 }
4520 int _start_lineno = p->tokens[_mark]->lineno;
4521 UNUSED(_start_lineno); // Only used by EXTRA macro
4522 int _start_col_offset = p->tokens[_mark]->col_offset;
4523 UNUSED(_start_col_offset); // Only used by EXTRA macro
4524 { // 'except' expression ['as' NAME] ':' block
4525 if (p->error_indicator) {
4526 D(p->level--);
4527 return NULL;
4528 }
4529 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
4530 Token * _keyword;
4531 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004532 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004533 expr_ty e;
4534 void *t;
4535 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004536 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004537 &&
4538 (e = expression_rule(p)) // expression
4539 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004540 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004541 &&
4542 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4543 &&
4544 (b = block_rule(p)) // block
4545 )
4546 {
4547 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
4548 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4549 if (_token == NULL) {
4550 D(p->level--);
4551 return NULL;
4552 }
4553 int _end_lineno = _token->end_lineno;
4554 UNUSED(_end_lineno); // Only used by EXTRA macro
4555 int _end_col_offset = _token->end_col_offset;
4556 UNUSED(_end_col_offset); // Only used by EXTRA macro
4557 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4558 if (_res == NULL && PyErr_Occurred()) {
4559 p->error_indicator = 1;
4560 D(p->level--);
4561 return NULL;
4562 }
4563 goto done;
4564 }
4565 p->mark = _mark;
4566 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
4568 }
4569 { // 'except' ':' block
4570 if (p->error_indicator) {
4571 D(p->level--);
4572 return NULL;
4573 }
4574 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
4575 Token * _keyword;
4576 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004577 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004578 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004579 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004580 &&
4581 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4582 &&
4583 (b = block_rule(p)) // block
4584 )
4585 {
4586 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
4587 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4588 if (_token == NULL) {
4589 D(p->level--);
4590 return NULL;
4591 }
4592 int _end_lineno = _token->end_lineno;
4593 UNUSED(_end_lineno); // Only used by EXTRA macro
4594 int _end_col_offset = _token->end_col_offset;
4595 UNUSED(_end_col_offset); // Only used by EXTRA macro
4596 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4597 if (_res == NULL && PyErr_Occurred()) {
4598 p->error_indicator = 1;
4599 D(p->level--);
4600 return NULL;
4601 }
4602 goto done;
4603 }
4604 p->mark = _mark;
4605 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
4607 }
4608 _res = NULL;
4609 done:
4610 D(p->level--);
4611 return _res;
4612}
4613
4614// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004615static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004616finally_block_rule(Parser *p)
4617{
4618 D(p->level++);
4619 if (p->error_indicator) {
4620 D(p->level--);
4621 return NULL;
4622 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004623 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004624 int _mark = p->mark;
4625 { // 'finally' ':' block
4626 if (p->error_indicator) {
4627 D(p->level--);
4628 return NULL;
4629 }
4630 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4631 Token * _keyword;
4632 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004633 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004634 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004635 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004636 &&
4637 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4638 &&
4639 (a = block_rule(p)) // block
4640 )
4641 {
4642 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4643 _res = a;
4644 if (_res == NULL && PyErr_Occurred()) {
4645 p->error_indicator = 1;
4646 D(p->level--);
4647 return NULL;
4648 }
4649 goto done;
4650 }
4651 p->mark = _mark;
4652 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4654 }
4655 _res = NULL;
4656 done:
4657 D(p->level--);
4658 return _res;
4659}
4660
4661// return_stmt: 'return' star_expressions?
4662static stmt_ty
4663return_stmt_rule(Parser *p)
4664{
4665 D(p->level++);
4666 if (p->error_indicator) {
4667 D(p->level--);
4668 return NULL;
4669 }
4670 stmt_ty _res = NULL;
4671 int _mark = p->mark;
4672 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4673 p->error_indicator = 1;
4674 D(p->level--);
4675 return NULL;
4676 }
4677 int _start_lineno = p->tokens[_mark]->lineno;
4678 UNUSED(_start_lineno); // Only used by EXTRA macro
4679 int _start_col_offset = p->tokens[_mark]->col_offset;
4680 UNUSED(_start_col_offset); // Only used by EXTRA macro
4681 { // 'return' star_expressions?
4682 if (p->error_indicator) {
4683 D(p->level--);
4684 return NULL;
4685 }
4686 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4687 Token * _keyword;
4688 void *a;
4689 if (
4690 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
4691 &&
4692 (a = star_expressions_rule(p), 1) // star_expressions?
4693 )
4694 {
4695 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4697 if (_token == NULL) {
4698 D(p->level--);
4699 return NULL;
4700 }
4701 int _end_lineno = _token->end_lineno;
4702 UNUSED(_end_lineno); // Only used by EXTRA macro
4703 int _end_col_offset = _token->end_col_offset;
4704 UNUSED(_end_col_offset); // Only used by EXTRA macro
4705 _res = _Py_Return ( a , EXTRA );
4706 if (_res == NULL && PyErr_Occurred()) {
4707 p->error_indicator = 1;
4708 D(p->level--);
4709 return NULL;
4710 }
4711 goto done;
4712 }
4713 p->mark = _mark;
4714 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
4716 }
4717 _res = NULL;
4718 done:
4719 D(p->level--);
4720 return _res;
4721}
4722
4723// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4724static stmt_ty
4725raise_stmt_rule(Parser *p)
4726{
4727 D(p->level++);
4728 if (p->error_indicator) {
4729 D(p->level--);
4730 return NULL;
4731 }
4732 stmt_ty _res = NULL;
4733 int _mark = p->mark;
4734 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4735 p->error_indicator = 1;
4736 D(p->level--);
4737 return NULL;
4738 }
4739 int _start_lineno = p->tokens[_mark]->lineno;
4740 UNUSED(_start_lineno); // Only used by EXTRA macro
4741 int _start_col_offset = p->tokens[_mark]->col_offset;
4742 UNUSED(_start_col_offset); // Only used by EXTRA macro
4743 { // 'raise' expression ['from' expression]
4744 if (p->error_indicator) {
4745 D(p->level--);
4746 return NULL;
4747 }
4748 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4749 Token * _keyword;
4750 expr_ty a;
4751 void *b;
4752 if (
4753 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4754 &&
4755 (a = expression_rule(p)) // expression
4756 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004757 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004758 )
4759 {
4760 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4761 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4762 if (_token == NULL) {
4763 D(p->level--);
4764 return NULL;
4765 }
4766 int _end_lineno = _token->end_lineno;
4767 UNUSED(_end_lineno); // Only used by EXTRA macro
4768 int _end_col_offset = _token->end_col_offset;
4769 UNUSED(_end_col_offset); // Only used by EXTRA macro
4770 _res = _Py_Raise ( a , b , EXTRA );
4771 if (_res == NULL && PyErr_Occurred()) {
4772 p->error_indicator = 1;
4773 D(p->level--);
4774 return NULL;
4775 }
4776 goto done;
4777 }
4778 p->mark = _mark;
4779 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
4781 }
4782 { // 'raise'
4783 if (p->error_indicator) {
4784 D(p->level--);
4785 return NULL;
4786 }
4787 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
4788 Token * _keyword;
4789 if (
4790 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4791 )
4792 {
4793 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
4794 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4795 if (_token == NULL) {
4796 D(p->level--);
4797 return NULL;
4798 }
4799 int _end_lineno = _token->end_lineno;
4800 UNUSED(_end_lineno); // Only used by EXTRA macro
4801 int _end_col_offset = _token->end_col_offset;
4802 UNUSED(_end_col_offset); // Only used by EXTRA macro
4803 _res = _Py_Raise ( NULL , NULL , EXTRA );
4804 if (_res == NULL && PyErr_Occurred()) {
4805 p->error_indicator = 1;
4806 D(p->level--);
4807 return NULL;
4808 }
4809 goto done;
4810 }
4811 p->mark = _mark;
4812 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
4814 }
4815 _res = NULL;
4816 done:
4817 D(p->level--);
4818 return _res;
4819}
4820
4821// function_def: decorators function_def_raw | function_def_raw
4822static stmt_ty
4823function_def_rule(Parser *p)
4824{
4825 D(p->level++);
4826 if (p->error_indicator) {
4827 D(p->level--);
4828 return NULL;
4829 }
4830 stmt_ty _res = NULL;
4831 int _mark = p->mark;
4832 { // decorators function_def_raw
4833 if (p->error_indicator) {
4834 D(p->level--);
4835 return NULL;
4836 }
4837 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 +01004838 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004839 stmt_ty f;
4840 if (
4841 (d = decorators_rule(p)) // decorators
4842 &&
4843 (f = function_def_raw_rule(p)) // function_def_raw
4844 )
4845 {
4846 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
4847 _res = _PyPegen_function_def_decorators ( p , d , f );
4848 if (_res == NULL && PyErr_Occurred()) {
4849 p->error_indicator = 1;
4850 D(p->level--);
4851 return NULL;
4852 }
4853 goto done;
4854 }
4855 p->mark = _mark;
4856 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
4858 }
4859 { // function_def_raw
4860 if (p->error_indicator) {
4861 D(p->level--);
4862 return NULL;
4863 }
4864 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4865 stmt_ty function_def_raw_var;
4866 if (
4867 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
4868 )
4869 {
4870 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4871 _res = function_def_raw_var;
4872 goto done;
4873 }
4874 p->mark = _mark;
4875 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
4877 }
4878 _res = NULL;
4879 done:
4880 D(p->level--);
4881 return _res;
4882}
4883
4884// function_def_raw:
4885// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4886// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4887static stmt_ty
4888function_def_raw_rule(Parser *p)
4889{
4890 D(p->level++);
4891 if (p->error_indicator) {
4892 D(p->level--);
4893 return NULL;
4894 }
4895 stmt_ty _res = NULL;
4896 int _mark = p->mark;
4897 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4898 p->error_indicator = 1;
4899 D(p->level--);
4900 return NULL;
4901 }
4902 int _start_lineno = p->tokens[_mark]->lineno;
4903 UNUSED(_start_lineno); // Only used by EXTRA macro
4904 int _start_col_offset = p->tokens[_mark]->col_offset;
4905 UNUSED(_start_col_offset); // Only used by EXTRA macro
4906 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4907 if (p->error_indicator) {
4908 D(p->level--);
4909 return NULL;
4910 }
4911 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
4912 Token * _keyword;
4913 Token * _literal;
4914 Token * _literal_1;
4915 Token * _literal_2;
4916 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004917 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004918 expr_ty n;
4919 void *params;
4920 void *tc;
4921 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004922 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004923 &&
4924 (n = _PyPegen_name_token(p)) // NAME
4925 &&
4926 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4927 &&
4928 (params = params_rule(p), 1) // params?
4929 &&
4930 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4931 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004932 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004933 &&
4934 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4935 &&
4936 (tc = func_type_comment_rule(p), 1) // func_type_comment?
4937 &&
4938 (b = block_rule(p)) // block
4939 )
4940 {
4941 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"));
4942 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4943 if (_token == NULL) {
4944 D(p->level--);
4945 return NULL;
4946 }
4947 int _end_lineno = _token->end_lineno;
4948 UNUSED(_end_lineno); // Only used by EXTRA macro
4949 int _end_col_offset = _token->end_col_offset;
4950 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004951 _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 +01004952 if (_res == NULL && PyErr_Occurred()) {
4953 p->error_indicator = 1;
4954 D(p->level--);
4955 return NULL;
4956 }
4957 goto done;
4958 }
4959 p->mark = _mark;
4960 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
4962 }
4963 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4964 if (p->error_indicator) {
4965 D(p->level--);
4966 return NULL;
4967 }
4968 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"));
4969 Token * _keyword;
4970 Token * _literal;
4971 Token * _literal_1;
4972 Token * _literal_2;
4973 void *a;
4974 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004975 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004976 expr_ty n;
4977 void *params;
4978 void *tc;
4979 if (
4980 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4981 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004982 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004983 &&
4984 (n = _PyPegen_name_token(p)) // NAME
4985 &&
4986 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4987 &&
4988 (params = params_rule(p), 1) // params?
4989 &&
4990 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4991 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004992 (a = _tmp_52_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004993 &&
4994 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4995 &&
4996 (tc = func_type_comment_rule(p), 1) // func_type_comment?
4997 &&
4998 (b = block_rule(p)) // block
4999 )
5000 {
5001 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"));
5002 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5003 if (_token == NULL) {
5004 D(p->level--);
5005 return NULL;
5006 }
5007 int _end_lineno = _token->end_lineno;
5008 UNUSED(_end_lineno); // Only used by EXTRA macro
5009 int _end_col_offset = _token->end_col_offset;
5010 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03005011 _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 +01005012 if (_res == NULL && PyErr_Occurred()) {
5013 p->error_indicator = 1;
5014 D(p->level--);
5015 return NULL;
5016 }
5017 goto done;
5018 }
5019 p->mark = _mark;
5020 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
5021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
5022 }
5023 _res = NULL;
5024 done:
5025 D(p->level--);
5026 return _res;
5027}
5028
5029// func_type_comment:
5030// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5031// | invalid_double_type_comments
5032// | TYPE_COMMENT
5033static Token*
5034func_type_comment_rule(Parser *p)
5035{
5036 D(p->level++);
5037 if (p->error_indicator) {
5038 D(p->level--);
5039 return NULL;
5040 }
5041 Token* _res = NULL;
5042 int _mark = p->mark;
5043 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5044 if (p->error_indicator) {
5045 D(p->level--);
5046 return NULL;
5047 }
5048 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5049 Token * newline_var;
5050 Token * t;
5051 if (
5052 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5053 &&
5054 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5055 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005056 _PyPegen_lookahead(1, _tmp_53_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005057 )
5058 {
5059 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5060 _res = t;
5061 if (_res == NULL && PyErr_Occurred()) {
5062 p->error_indicator = 1;
5063 D(p->level--);
5064 return NULL;
5065 }
5066 goto done;
5067 }
5068 p->mark = _mark;
5069 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5071 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005072 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005073 if (p->error_indicator) {
5074 D(p->level--);
5075 return NULL;
5076 }
5077 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5078 void *invalid_double_type_comments_var;
5079 if (
5080 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
5081 )
5082 {
5083 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5084 _res = invalid_double_type_comments_var;
5085 goto done;
5086 }
5087 p->mark = _mark;
5088 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
5090 }
5091 { // TYPE_COMMENT
5092 if (p->error_indicator) {
5093 D(p->level--);
5094 return NULL;
5095 }
5096 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5097 Token * type_comment_var;
5098 if (
5099 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5100 )
5101 {
5102 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5103 _res = type_comment_var;
5104 goto done;
5105 }
5106 p->mark = _mark;
5107 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
5109 }
5110 _res = NULL;
5111 done:
5112 D(p->level--);
5113 return _res;
5114}
5115
5116// params: invalid_parameters | parameters
5117static arguments_ty
5118params_rule(Parser *p)
5119{
5120 D(p->level++);
5121 if (p->error_indicator) {
5122 D(p->level--);
5123 return NULL;
5124 }
5125 arguments_ty _res = NULL;
5126 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005127 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005128 if (p->error_indicator) {
5129 D(p->level--);
5130 return NULL;
5131 }
5132 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5133 void *invalid_parameters_var;
5134 if (
5135 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
5136 )
5137 {
5138 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5139 _res = invalid_parameters_var;
5140 goto done;
5141 }
5142 p->mark = _mark;
5143 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
5145 }
5146 { // parameters
5147 if (p->error_indicator) {
5148 D(p->level--);
5149 return NULL;
5150 }
5151 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
5152 arguments_ty parameters_var;
5153 if (
5154 (parameters_var = parameters_rule(p)) // parameters
5155 )
5156 {
5157 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
5158 _res = parameters_var;
5159 goto done;
5160 }
5161 p->mark = _mark;
5162 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
5164 }
5165 _res = NULL;
5166 done:
5167 D(p->level--);
5168 return _res;
5169}
5170
5171// parameters:
5172// | slash_no_default param_no_default* param_with_default* star_etc?
5173// | slash_with_default param_with_default* star_etc?
5174// | param_no_default+ param_with_default* star_etc?
5175// | param_with_default+ star_etc?
5176// | star_etc
5177static arguments_ty
5178parameters_rule(Parser *p)
5179{
5180 D(p->level++);
5181 if (p->error_indicator) {
5182 D(p->level--);
5183 return NULL;
5184 }
5185 arguments_ty _res = NULL;
5186 int _mark = p->mark;
5187 { // slash_no_default param_no_default* param_with_default* star_etc?
5188 if (p->error_indicator) {
5189 D(p->level--);
5190 return NULL;
5191 }
5192 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 +01005193 asdl_arg_seq* a;
5194 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005195 asdl_seq * c;
5196 void *d;
5197 if (
5198 (a = slash_no_default_rule(p)) // slash_no_default
5199 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01005200 (b = (asdl_arg_seq*)_loop0_54_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005201 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005202 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005203 &&
5204 (d = star_etc_rule(p), 1) // star_etc?
5205 )
5206 {
5207 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?"));
5208 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5209 if (_res == NULL && PyErr_Occurred()) {
5210 p->error_indicator = 1;
5211 D(p->level--);
5212 return NULL;
5213 }
5214 goto done;
5215 }
5216 p->mark = _mark;
5217 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
5219 }
5220 { // slash_with_default param_with_default* star_etc?
5221 if (p->error_indicator) {
5222 D(p->level--);
5223 return NULL;
5224 }
5225 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5226 SlashWithDefault* a;
5227 asdl_seq * b;
5228 void *c;
5229 if (
5230 (a = slash_with_default_rule(p)) // slash_with_default
5231 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005232 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005233 &&
5234 (c = star_etc_rule(p), 1) // star_etc?
5235 )
5236 {
5237 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5238 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5239 if (_res == NULL && PyErr_Occurred()) {
5240 p->error_indicator = 1;
5241 D(p->level--);
5242 return NULL;
5243 }
5244 goto done;
5245 }
5246 p->mark = _mark;
5247 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5249 }
5250 { // param_no_default+ param_with_default* star_etc?
5251 if (p->error_indicator) {
5252 D(p->level--);
5253 return NULL;
5254 }
5255 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 +01005256 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005257 asdl_seq * b;
5258 void *c;
5259 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005260 (a = (asdl_arg_seq*)_loop1_57_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005261 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005262 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005263 &&
5264 (c = star_etc_rule(p), 1) // star_etc?
5265 )
5266 {
5267 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5268 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5269 if (_res == NULL && PyErr_Occurred()) {
5270 p->error_indicator = 1;
5271 D(p->level--);
5272 return NULL;
5273 }
5274 goto done;
5275 }
5276 p->mark = _mark;
5277 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5279 }
5280 { // param_with_default+ star_etc?
5281 if (p->error_indicator) {
5282 D(p->level--);
5283 return NULL;
5284 }
5285 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5286 asdl_seq * a;
5287 void *b;
5288 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005289 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005290 &&
5291 (b = star_etc_rule(p), 1) // star_etc?
5292 )
5293 {
5294 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5295 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5296 if (_res == NULL && PyErr_Occurred()) {
5297 p->error_indicator = 1;
5298 D(p->level--);
5299 return NULL;
5300 }
5301 goto done;
5302 }
5303 p->mark = _mark;
5304 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
5306 }
5307 { // star_etc
5308 if (p->error_indicator) {
5309 D(p->level--);
5310 return NULL;
5311 }
5312 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
5313 StarEtc* a;
5314 if (
5315 (a = star_etc_rule(p)) // star_etc
5316 )
5317 {
5318 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
5319 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5320 if (_res == NULL && PyErr_Occurred()) {
5321 p->error_indicator = 1;
5322 D(p->level--);
5323 return NULL;
5324 }
5325 goto done;
5326 }
5327 p->mark = _mark;
5328 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
5330 }
5331 _res = NULL;
5332 done:
5333 D(p->level--);
5334 return _res;
5335}
5336
5337// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01005338static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005339slash_no_default_rule(Parser *p)
5340{
5341 D(p->level++);
5342 if (p->error_indicator) {
5343 D(p->level--);
5344 return NULL;
5345 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005346 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005347 int _mark = p->mark;
5348 { // param_no_default+ '/' ','
5349 if (p->error_indicator) {
5350 D(p->level--);
5351 return NULL;
5352 }
5353 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5354 Token * _literal;
5355 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005356 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005357 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005358 (a = (asdl_arg_seq*)_loop1_60_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005359 &&
5360 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5361 &&
5362 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5363 )
5364 {
5365 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5366 _res = a;
5367 if (_res == NULL && PyErr_Occurred()) {
5368 p->error_indicator = 1;
5369 D(p->level--);
5370 return NULL;
5371 }
5372 goto done;
5373 }
5374 p->mark = _mark;
5375 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
5377 }
5378 { // param_no_default+ '/' &')'
5379 if (p->error_indicator) {
5380 D(p->level--);
5381 return NULL;
5382 }
5383 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5384 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005385 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005386 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005387 (a = (asdl_arg_seq*)_loop1_61_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005388 &&
5389 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5390 &&
5391 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5392 )
5393 {
5394 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5395 _res = a;
5396 if (_res == NULL && PyErr_Occurred()) {
5397 p->error_indicator = 1;
5398 D(p->level--);
5399 return NULL;
5400 }
5401 goto done;
5402 }
5403 p->mark = _mark;
5404 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
5406 }
5407 _res = NULL;
5408 done:
5409 D(p->level--);
5410 return _res;
5411}
5412
5413// slash_with_default:
5414// | param_no_default* param_with_default+ '/' ','
5415// | param_no_default* param_with_default+ '/' &')'
5416static SlashWithDefault*
5417slash_with_default_rule(Parser *p)
5418{
5419 D(p->level++);
5420 if (p->error_indicator) {
5421 D(p->level--);
5422 return NULL;
5423 }
5424 SlashWithDefault* _res = NULL;
5425 int _mark = p->mark;
5426 { // param_no_default* param_with_default+ '/' ','
5427 if (p->error_indicator) {
5428 D(p->level--);
5429 return NULL;
5430 }
5431 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5432 Token * _literal;
5433 Token * _literal_1;
5434 asdl_seq * a;
5435 asdl_seq * b;
5436 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005437 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005438 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005439 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005440 &&
5441 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5442 &&
5443 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5444 )
5445 {
5446 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 +01005447 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005448 if (_res == NULL && PyErr_Occurred()) {
5449 p->error_indicator = 1;
5450 D(p->level--);
5451 return NULL;
5452 }
5453 goto done;
5454 }
5455 p->mark = _mark;
5456 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5458 }
5459 { // param_no_default* param_with_default+ '/' &')'
5460 if (p->error_indicator) {
5461 D(p->level--);
5462 return NULL;
5463 }
5464 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5465 Token * _literal;
5466 asdl_seq * a;
5467 asdl_seq * b;
5468 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005469 (a = _loop0_64_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005470 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005471 (b = _loop1_65_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005472 &&
5473 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5474 &&
5475 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5476 )
5477 {
5478 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 +01005479 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005480 if (_res == NULL && PyErr_Occurred()) {
5481 p->error_indicator = 1;
5482 D(p->level--);
5483 return NULL;
5484 }
5485 goto done;
5486 }
5487 p->mark = _mark;
5488 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5490 }
5491 _res = NULL;
5492 done:
5493 D(p->level--);
5494 return _res;
5495}
5496
5497// star_etc:
5498// | '*' param_no_default param_maybe_default* kwds?
5499// | '*' ',' param_maybe_default+ kwds?
5500// | kwds
5501// | invalid_star_etc
5502static StarEtc*
5503star_etc_rule(Parser *p)
5504{
5505 D(p->level++);
5506 if (p->error_indicator) {
5507 D(p->level--);
5508 return NULL;
5509 }
5510 StarEtc* _res = NULL;
5511 int _mark = p->mark;
5512 { // '*' param_no_default param_maybe_default* kwds?
5513 if (p->error_indicator) {
5514 D(p->level--);
5515 return NULL;
5516 }
5517 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5518 Token * _literal;
5519 arg_ty a;
5520 asdl_seq * b;
5521 void *c;
5522 if (
5523 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5524 &&
5525 (a = param_no_default_rule(p)) // param_no_default
5526 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005527 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005528 &&
5529 (c = kwds_rule(p), 1) // kwds?
5530 )
5531 {
5532 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5533 _res = _PyPegen_star_etc ( p , a , b , c );
5534 if (_res == NULL && PyErr_Occurred()) {
5535 p->error_indicator = 1;
5536 D(p->level--);
5537 return NULL;
5538 }
5539 goto done;
5540 }
5541 p->mark = _mark;
5542 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5544 }
5545 { // '*' ',' param_maybe_default+ kwds?
5546 if (p->error_indicator) {
5547 D(p->level--);
5548 return NULL;
5549 }
5550 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5551 Token * _literal;
5552 Token * _literal_1;
5553 asdl_seq * b;
5554 void *c;
5555 if (
5556 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5557 &&
5558 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5559 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005560 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005561 &&
5562 (c = kwds_rule(p), 1) // kwds?
5563 )
5564 {
5565 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5566 _res = _PyPegen_star_etc ( p , NULL , b , c );
5567 if (_res == NULL && PyErr_Occurred()) {
5568 p->error_indicator = 1;
5569 D(p->level--);
5570 return NULL;
5571 }
5572 goto done;
5573 }
5574 p->mark = _mark;
5575 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5577 }
5578 { // kwds
5579 if (p->error_indicator) {
5580 D(p->level--);
5581 return NULL;
5582 }
5583 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
5584 arg_ty a;
5585 if (
5586 (a = kwds_rule(p)) // kwds
5587 )
5588 {
5589 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
5590 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5591 if (_res == NULL && PyErr_Occurred()) {
5592 p->error_indicator = 1;
5593 D(p->level--);
5594 return NULL;
5595 }
5596 goto done;
5597 }
5598 p->mark = _mark;
5599 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
5601 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005602 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005603 if (p->error_indicator) {
5604 D(p->level--);
5605 return NULL;
5606 }
5607 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5608 void *invalid_star_etc_var;
5609 if (
5610 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
5611 )
5612 {
5613 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5614 _res = invalid_star_etc_var;
5615 goto done;
5616 }
5617 p->mark = _mark;
5618 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
5620 }
5621 _res = NULL;
5622 done:
5623 D(p->level--);
5624 return _res;
5625}
5626
5627// kwds: '**' param_no_default
5628static arg_ty
5629kwds_rule(Parser *p)
5630{
5631 D(p->level++);
5632 if (p->error_indicator) {
5633 D(p->level--);
5634 return NULL;
5635 }
5636 arg_ty _res = NULL;
5637 int _mark = p->mark;
5638 { // '**' param_no_default
5639 if (p->error_indicator) {
5640 D(p->level--);
5641 return NULL;
5642 }
5643 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5644 Token * _literal;
5645 arg_ty a;
5646 if (
5647 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
5648 &&
5649 (a = param_no_default_rule(p)) // param_no_default
5650 )
5651 {
5652 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5653 _res = a;
5654 if (_res == NULL && PyErr_Occurred()) {
5655 p->error_indicator = 1;
5656 D(p->level--);
5657 return NULL;
5658 }
5659 goto done;
5660 }
5661 p->mark = _mark;
5662 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
5664 }
5665 _res = NULL;
5666 done:
5667 D(p->level--);
5668 return _res;
5669}
5670
5671// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5672static arg_ty
5673param_no_default_rule(Parser *p)
5674{
5675 D(p->level++);
5676 if (p->error_indicator) {
5677 D(p->level--);
5678 return NULL;
5679 }
5680 arg_ty _res = NULL;
5681 int _mark = p->mark;
5682 { // param ',' TYPE_COMMENT?
5683 if (p->error_indicator) {
5684 D(p->level--);
5685 return NULL;
5686 }
5687 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5688 Token * _literal;
5689 arg_ty a;
5690 void *tc;
5691 if (
5692 (a = param_rule(p)) // param
5693 &&
5694 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5695 &&
5696 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5697 )
5698 {
5699 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5700 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5701 if (_res == NULL && PyErr_Occurred()) {
5702 p->error_indicator = 1;
5703 D(p->level--);
5704 return NULL;
5705 }
5706 goto done;
5707 }
5708 p->mark = _mark;
5709 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
5711 }
5712 { // param TYPE_COMMENT? &')'
5713 if (p->error_indicator) {
5714 D(p->level--);
5715 return NULL;
5716 }
5717 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5718 arg_ty a;
5719 void *tc;
5720 if (
5721 (a = param_rule(p)) // param
5722 &&
5723 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5724 &&
5725 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5726 )
5727 {
5728 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5729 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5730 if (_res == NULL && PyErr_Occurred()) {
5731 p->error_indicator = 1;
5732 D(p->level--);
5733 return NULL;
5734 }
5735 goto done;
5736 }
5737 p->mark = _mark;
5738 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
5740 }
5741 _res = NULL;
5742 done:
5743 D(p->level--);
5744 return _res;
5745}
5746
5747// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
5748static NameDefaultPair*
5749param_with_default_rule(Parser *p)
5750{
5751 D(p->level++);
5752 if (p->error_indicator) {
5753 D(p->level--);
5754 return NULL;
5755 }
5756 NameDefaultPair* _res = NULL;
5757 int _mark = p->mark;
5758 { // param default ',' TYPE_COMMENT?
5759 if (p->error_indicator) {
5760 D(p->level--);
5761 return NULL;
5762 }
5763 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5764 Token * _literal;
5765 arg_ty a;
5766 expr_ty c;
5767 void *tc;
5768 if (
5769 (a = param_rule(p)) // param
5770 &&
5771 (c = default_rule(p)) // default
5772 &&
5773 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5774 &&
5775 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5776 )
5777 {
5778 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5779 _res = _PyPegen_name_default_pair ( p , a , c , 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_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5790 }
5791 { // param default TYPE_COMMENT? &')'
5792 if (p->error_indicator) {
5793 D(p->level--);
5794 return NULL;
5795 }
5796 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5797 arg_ty a;
5798 expr_ty c;
5799 void *tc;
5800 if (
5801 (a = param_rule(p)) // param
5802 &&
5803 (c = default_rule(p)) // default
5804 &&
5805 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5806 &&
5807 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5808 )
5809 {
5810 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5811 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5812 if (_res == NULL && PyErr_Occurred()) {
5813 p->error_indicator = 1;
5814 D(p->level--);
5815 return NULL;
5816 }
5817 goto done;
5818 }
5819 p->mark = _mark;
5820 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5822 }
5823 _res = NULL;
5824 done:
5825 D(p->level--);
5826 return _res;
5827}
5828
5829// param_maybe_default:
5830// | param default? ',' TYPE_COMMENT?
5831// | param default? TYPE_COMMENT? &')'
5832static NameDefaultPair*
5833param_maybe_default_rule(Parser *p)
5834{
5835 D(p->level++);
5836 if (p->error_indicator) {
5837 D(p->level--);
5838 return NULL;
5839 }
5840 NameDefaultPair* _res = NULL;
5841 int _mark = p->mark;
5842 { // param default? ',' TYPE_COMMENT?
5843 if (p->error_indicator) {
5844 D(p->level--);
5845 return NULL;
5846 }
5847 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5848 Token * _literal;
5849 arg_ty a;
5850 void *c;
5851 void *tc;
5852 if (
5853 (a = param_rule(p)) // param
5854 &&
5855 (c = default_rule(p), 1) // default?
5856 &&
5857 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5858 &&
5859 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5860 )
5861 {
5862 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5863 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5864 if (_res == NULL && PyErr_Occurred()) {
5865 p->error_indicator = 1;
5866 D(p->level--);
5867 return NULL;
5868 }
5869 goto done;
5870 }
5871 p->mark = _mark;
5872 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5874 }
5875 { // param default? TYPE_COMMENT? &')'
5876 if (p->error_indicator) {
5877 D(p->level--);
5878 return NULL;
5879 }
5880 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5881 arg_ty a;
5882 void *c;
5883 void *tc;
5884 if (
5885 (a = param_rule(p)) // param
5886 &&
5887 (c = default_rule(p), 1) // default?
5888 &&
5889 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5890 &&
5891 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5892 )
5893 {
5894 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5895 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5896 if (_res == NULL && PyErr_Occurred()) {
5897 p->error_indicator = 1;
5898 D(p->level--);
5899 return NULL;
5900 }
5901 goto done;
5902 }
5903 p->mark = _mark;
5904 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5906 }
5907 _res = NULL;
5908 done:
5909 D(p->level--);
5910 return _res;
5911}
5912
5913// param: NAME annotation?
5914static arg_ty
5915param_rule(Parser *p)
5916{
5917 D(p->level++);
5918 if (p->error_indicator) {
5919 D(p->level--);
5920 return NULL;
5921 }
5922 arg_ty _res = NULL;
5923 int _mark = p->mark;
5924 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5925 p->error_indicator = 1;
5926 D(p->level--);
5927 return NULL;
5928 }
5929 int _start_lineno = p->tokens[_mark]->lineno;
5930 UNUSED(_start_lineno); // Only used by EXTRA macro
5931 int _start_col_offset = p->tokens[_mark]->col_offset;
5932 UNUSED(_start_col_offset); // Only used by EXTRA macro
5933 { // NAME annotation?
5934 if (p->error_indicator) {
5935 D(p->level--);
5936 return NULL;
5937 }
5938 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5939 expr_ty a;
5940 void *b;
5941 if (
5942 (a = _PyPegen_name_token(p)) // NAME
5943 &&
5944 (b = annotation_rule(p), 1) // annotation?
5945 )
5946 {
5947 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5949 if (_token == NULL) {
5950 D(p->level--);
5951 return NULL;
5952 }
5953 int _end_lineno = _token->end_lineno;
5954 UNUSED(_end_lineno); // Only used by EXTRA macro
5955 int _end_col_offset = _token->end_col_offset;
5956 UNUSED(_end_col_offset); // Only used by EXTRA macro
5957 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5958 if (_res == NULL && PyErr_Occurred()) {
5959 p->error_indicator = 1;
5960 D(p->level--);
5961 return NULL;
5962 }
5963 goto done;
5964 }
5965 p->mark = _mark;
5966 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
5968 }
5969 _res = NULL;
5970 done:
5971 D(p->level--);
5972 return _res;
5973}
5974
5975// annotation: ':' expression
5976static expr_ty
5977annotation_rule(Parser *p)
5978{
5979 D(p->level++);
5980 if (p->error_indicator) {
5981 D(p->level--);
5982 return NULL;
5983 }
5984 expr_ty _res = NULL;
5985 int _mark = p->mark;
5986 { // ':' expression
5987 if (p->error_indicator) {
5988 D(p->level--);
5989 return NULL;
5990 }
5991 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
5992 Token * _literal;
5993 expr_ty a;
5994 if (
5995 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5996 &&
5997 (a = expression_rule(p)) // expression
5998 )
5999 {
6000 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
6001 _res = a;
6002 if (_res == NULL && PyErr_Occurred()) {
6003 p->error_indicator = 1;
6004 D(p->level--);
6005 return NULL;
6006 }
6007 goto done;
6008 }
6009 p->mark = _mark;
6010 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
6012 }
6013 _res = NULL;
6014 done:
6015 D(p->level--);
6016 return _res;
6017}
6018
6019// default: '=' expression
6020static expr_ty
6021default_rule(Parser *p)
6022{
6023 D(p->level++);
6024 if (p->error_indicator) {
6025 D(p->level--);
6026 return NULL;
6027 }
6028 expr_ty _res = NULL;
6029 int _mark = p->mark;
6030 { // '=' expression
6031 if (p->error_indicator) {
6032 D(p->level--);
6033 return NULL;
6034 }
6035 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6036 Token * _literal;
6037 expr_ty a;
6038 if (
6039 (_literal = _PyPegen_expect_token(p, 22)) // token='='
6040 &&
6041 (a = expression_rule(p)) // expression
6042 )
6043 {
6044 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6045 _res = a;
6046 if (_res == NULL && PyErr_Occurred()) {
6047 p->error_indicator = 1;
6048 D(p->level--);
6049 return NULL;
6050 }
6051 goto done;
6052 }
6053 p->mark = _mark;
6054 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
6056 }
6057 _res = NULL;
6058 done:
6059 D(p->level--);
6060 return _res;
6061}
6062
6063// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01006064static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006065decorators_rule(Parser *p)
6066{
6067 D(p->level++);
6068 if (p->error_indicator) {
6069 D(p->level--);
6070 return NULL;
6071 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006072 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006073 int _mark = p->mark;
6074 { // (('@' named_expression NEWLINE))+
6075 if (p->error_indicator) {
6076 D(p->level--);
6077 return NULL;
6078 }
6079 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01006080 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006081 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01006082 (a = (asdl_expr_seq*)_loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006083 )
6084 {
6085 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6086 _res = a;
6087 if (_res == NULL && PyErr_Occurred()) {
6088 p->error_indicator = 1;
6089 D(p->level--);
6090 return NULL;
6091 }
6092 goto done;
6093 }
6094 p->mark = _mark;
6095 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6097 }
6098 _res = NULL;
6099 done:
6100 D(p->level--);
6101 return _res;
6102}
6103
6104// class_def: decorators class_def_raw | class_def_raw
6105static stmt_ty
6106class_def_rule(Parser *p)
6107{
6108 D(p->level++);
6109 if (p->error_indicator) {
6110 D(p->level--);
6111 return NULL;
6112 }
6113 stmt_ty _res = NULL;
6114 int _mark = p->mark;
6115 { // decorators class_def_raw
6116 if (p->error_indicator) {
6117 D(p->level--);
6118 return NULL;
6119 }
6120 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 +01006121 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006122 stmt_ty b;
6123 if (
6124 (a = decorators_rule(p)) // decorators
6125 &&
6126 (b = class_def_raw_rule(p)) // class_def_raw
6127 )
6128 {
6129 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
6130 _res = _PyPegen_class_def_decorators ( p , a , b );
6131 if (_res == NULL && PyErr_Occurred()) {
6132 p->error_indicator = 1;
6133 D(p->level--);
6134 return NULL;
6135 }
6136 goto done;
6137 }
6138 p->mark = _mark;
6139 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
6141 }
6142 { // class_def_raw
6143 if (p->error_indicator) {
6144 D(p->level--);
6145 return NULL;
6146 }
6147 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6148 stmt_ty class_def_raw_var;
6149 if (
6150 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
6151 )
6152 {
6153 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6154 _res = class_def_raw_var;
6155 goto done;
6156 }
6157 p->mark = _mark;
6158 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
6160 }
6161 _res = NULL;
6162 done:
6163 D(p->level--);
6164 return _res;
6165}
6166
6167// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6168static stmt_ty
6169class_def_raw_rule(Parser *p)
6170{
6171 D(p->level++);
6172 if (p->error_indicator) {
6173 D(p->level--);
6174 return NULL;
6175 }
6176 stmt_ty _res = NULL;
6177 int _mark = p->mark;
6178 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6179 p->error_indicator = 1;
6180 D(p->level--);
6181 return NULL;
6182 }
6183 int _start_lineno = p->tokens[_mark]->lineno;
6184 UNUSED(_start_lineno); // Only used by EXTRA macro
6185 int _start_col_offset = p->tokens[_mark]->col_offset;
6186 UNUSED(_start_col_offset); // Only used by EXTRA macro
6187 { // 'class' NAME ['(' arguments? ')'] ':' block
6188 if (p->error_indicator) {
6189 D(p->level--);
6190 return NULL;
6191 }
6192 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
6193 Token * _keyword;
6194 Token * _literal;
6195 expr_ty a;
6196 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01006197 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006198 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006199 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006200 &&
6201 (a = _PyPegen_name_token(p)) // NAME
6202 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006203 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006204 &&
6205 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6206 &&
6207 (c = block_rule(p)) // block
6208 )
6209 {
6210 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
6211 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6212 if (_token == NULL) {
6213 D(p->level--);
6214 return NULL;
6215 }
6216 int _end_lineno = _token->end_lineno;
6217 UNUSED(_end_lineno); // Only used by EXTRA macro
6218 int _end_col_offset = _token->end_col_offset;
6219 UNUSED(_end_col_offset); // Only used by EXTRA macro
6220 _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 );
6221 if (_res == NULL && PyErr_Occurred()) {
6222 p->error_indicator = 1;
6223 D(p->level--);
6224 return NULL;
6225 }
6226 goto done;
6227 }
6228 p->mark = _mark;
6229 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
6231 }
6232 _res = NULL;
6233 done:
6234 D(p->level--);
6235 return _res;
6236}
6237
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006238// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01006239static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006240block_rule(Parser *p)
6241{
6242 D(p->level++);
6243 if (p->error_indicator) {
6244 D(p->level--);
6245 return NULL;
6246 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006247 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006248 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6249 D(p->level--);
6250 return _res;
6251 }
6252 int _mark = p->mark;
6253 { // NEWLINE INDENT statements DEDENT
6254 if (p->error_indicator) {
6255 D(p->level--);
6256 return NULL;
6257 }
6258 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 +01006259 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006260 Token * dedent_var;
6261 Token * indent_var;
6262 Token * newline_var;
6263 if (
6264 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
6265 &&
6266 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
6267 &&
6268 (a = statements_rule(p)) // statements
6269 &&
6270 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
6271 )
6272 {
6273 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6274 _res = a;
6275 if (_res == NULL && PyErr_Occurred()) {
6276 p->error_indicator = 1;
6277 D(p->level--);
6278 return NULL;
6279 }
6280 goto done;
6281 }
6282 p->mark = _mark;
6283 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6285 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006286 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006287 if (p->error_indicator) {
6288 D(p->level--);
6289 return NULL;
6290 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006291 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6292 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006293 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006294 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006295 )
6296 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006297 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6298 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006299 goto done;
6300 }
6301 p->mark = _mark;
6302 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006304 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006305 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006306 if (p->error_indicator) {
6307 D(p->level--);
6308 return NULL;
6309 }
6310 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6311 void *invalid_block_var;
6312 if (
6313 (invalid_block_var = invalid_block_rule(p)) // invalid_block
6314 )
6315 {
6316 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6317 _res = invalid_block_var;
6318 goto done;
6319 }
6320 p->mark = _mark;
6321 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
6323 }
6324 _res = NULL;
6325 done:
6326 _PyPegen_insert_memo(p, _mark, block_type, _res);
6327 D(p->level--);
6328 return _res;
6329}
6330
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006331// star_expressions:
6332// | star_expression ((',' star_expression))+ ','?
6333// | star_expression ','
6334// | star_expression
6335static expr_ty
6336star_expressions_rule(Parser *p)
6337{
6338 D(p->level++);
6339 if (p->error_indicator) {
6340 D(p->level--);
6341 return NULL;
6342 }
6343 expr_ty _res = NULL;
6344 int _mark = p->mark;
6345 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6346 p->error_indicator = 1;
6347 D(p->level--);
6348 return NULL;
6349 }
6350 int _start_lineno = p->tokens[_mark]->lineno;
6351 UNUSED(_start_lineno); // Only used by EXTRA macro
6352 int _start_col_offset = p->tokens[_mark]->col_offset;
6353 UNUSED(_start_col_offset); // Only used by EXTRA macro
6354 { // star_expression ((',' star_expression))+ ','?
6355 if (p->error_indicator) {
6356 D(p->level--);
6357 return NULL;
6358 }
6359 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6360 void *_opt_var;
6361 UNUSED(_opt_var); // Silence compiler warnings
6362 expr_ty a;
6363 asdl_seq * b;
6364 if (
6365 (a = star_expression_rule(p)) // star_expression
6366 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006367 (b = _loop1_70_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006368 &&
6369 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6370 )
6371 {
6372 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6373 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6374 if (_token == NULL) {
6375 D(p->level--);
6376 return NULL;
6377 }
6378 int _end_lineno = _token->end_lineno;
6379 UNUSED(_end_lineno); // Only used by EXTRA macro
6380 int _end_col_offset = _token->end_col_offset;
6381 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006382 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006383 if (_res == NULL && PyErr_Occurred()) {
6384 p->error_indicator = 1;
6385 D(p->level--);
6386 return NULL;
6387 }
6388 goto done;
6389 }
6390 p->mark = _mark;
6391 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6393 }
6394 { // star_expression ','
6395 if (p->error_indicator) {
6396 D(p->level--);
6397 return NULL;
6398 }
6399 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6400 Token * _literal;
6401 expr_ty a;
6402 if (
6403 (a = star_expression_rule(p)) // star_expression
6404 &&
6405 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6406 )
6407 {
6408 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6409 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6410 if (_token == NULL) {
6411 D(p->level--);
6412 return NULL;
6413 }
6414 int _end_lineno = _token->end_lineno;
6415 UNUSED(_end_lineno); // Only used by EXTRA macro
6416 int _end_col_offset = _token->end_col_offset;
6417 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006418 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006419 if (_res == NULL && PyErr_Occurred()) {
6420 p->error_indicator = 1;
6421 D(p->level--);
6422 return NULL;
6423 }
6424 goto done;
6425 }
6426 p->mark = _mark;
6427 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
6429 }
6430 { // star_expression
6431 if (p->error_indicator) {
6432 D(p->level--);
6433 return NULL;
6434 }
6435 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
6436 expr_ty star_expression_var;
6437 if (
6438 (star_expression_var = star_expression_rule(p)) // star_expression
6439 )
6440 {
6441 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
6442 _res = star_expression_var;
6443 goto done;
6444 }
6445 p->mark = _mark;
6446 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
6448 }
6449 _res = NULL;
6450 done:
6451 D(p->level--);
6452 return _res;
6453}
6454
6455// star_expression: '*' bitwise_or | expression
6456static expr_ty
6457star_expression_rule(Parser *p)
6458{
6459 D(p->level++);
6460 if (p->error_indicator) {
6461 D(p->level--);
6462 return NULL;
6463 }
6464 expr_ty _res = NULL;
6465 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6466 D(p->level--);
6467 return _res;
6468 }
6469 int _mark = p->mark;
6470 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6471 p->error_indicator = 1;
6472 D(p->level--);
6473 return NULL;
6474 }
6475 int _start_lineno = p->tokens[_mark]->lineno;
6476 UNUSED(_start_lineno); // Only used by EXTRA macro
6477 int _start_col_offset = p->tokens[_mark]->col_offset;
6478 UNUSED(_start_col_offset); // Only used by EXTRA macro
6479 { // '*' bitwise_or
6480 if (p->error_indicator) {
6481 D(p->level--);
6482 return NULL;
6483 }
6484 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6485 Token * _literal;
6486 expr_ty a;
6487 if (
6488 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6489 &&
6490 (a = bitwise_or_rule(p)) // bitwise_or
6491 )
6492 {
6493 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6494 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6495 if (_token == NULL) {
6496 D(p->level--);
6497 return NULL;
6498 }
6499 int _end_lineno = _token->end_lineno;
6500 UNUSED(_end_lineno); // Only used by EXTRA macro
6501 int _end_col_offset = _token->end_col_offset;
6502 UNUSED(_end_col_offset); // Only used by EXTRA macro
6503 _res = _Py_Starred ( a , Load , EXTRA );
6504 if (_res == NULL && PyErr_Occurred()) {
6505 p->error_indicator = 1;
6506 D(p->level--);
6507 return NULL;
6508 }
6509 goto done;
6510 }
6511 p->mark = _mark;
6512 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6514 }
6515 { // expression
6516 if (p->error_indicator) {
6517 D(p->level--);
6518 return NULL;
6519 }
6520 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6521 expr_ty expression_var;
6522 if (
6523 (expression_var = expression_rule(p)) // expression
6524 )
6525 {
6526 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6527 _res = expression_var;
6528 goto done;
6529 }
6530 p->mark = _mark;
6531 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6533 }
6534 _res = NULL;
6535 done:
6536 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
6537 D(p->level--);
6538 return _res;
6539}
6540
6541// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01006542static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006543star_named_expressions_rule(Parser *p)
6544{
6545 D(p->level++);
6546 if (p->error_indicator) {
6547 D(p->level--);
6548 return NULL;
6549 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006550 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006551 int _mark = p->mark;
6552 { // ','.star_named_expression+ ','?
6553 if (p->error_indicator) {
6554 D(p->level--);
6555 return NULL;
6556 }
6557 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6558 void *_opt_var;
6559 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01006560 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006561 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006562 (a = (asdl_expr_seq*)_gather_71_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006563 &&
6564 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6565 )
6566 {
6567 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6568 _res = a;
6569 if (_res == NULL && PyErr_Occurred()) {
6570 p->error_indicator = 1;
6571 D(p->level--);
6572 return NULL;
6573 }
6574 goto done;
6575 }
6576 p->mark = _mark;
6577 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
6579 }
6580 _res = NULL;
6581 done:
6582 D(p->level--);
6583 return _res;
6584}
6585
6586// star_named_expression: '*' bitwise_or | named_expression
6587static expr_ty
6588star_named_expression_rule(Parser *p)
6589{
6590 D(p->level++);
6591 if (p->error_indicator) {
6592 D(p->level--);
6593 return NULL;
6594 }
6595 expr_ty _res = NULL;
6596 int _mark = p->mark;
6597 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6598 p->error_indicator = 1;
6599 D(p->level--);
6600 return NULL;
6601 }
6602 int _start_lineno = p->tokens[_mark]->lineno;
6603 UNUSED(_start_lineno); // Only used by EXTRA macro
6604 int _start_col_offset = p->tokens[_mark]->col_offset;
6605 UNUSED(_start_col_offset); // Only used by EXTRA macro
6606 { // '*' bitwise_or
6607 if (p->error_indicator) {
6608 D(p->level--);
6609 return NULL;
6610 }
6611 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6612 Token * _literal;
6613 expr_ty a;
6614 if (
6615 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6616 &&
6617 (a = bitwise_or_rule(p)) // bitwise_or
6618 )
6619 {
6620 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6621 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6622 if (_token == NULL) {
6623 D(p->level--);
6624 return NULL;
6625 }
6626 int _end_lineno = _token->end_lineno;
6627 UNUSED(_end_lineno); // Only used by EXTRA macro
6628 int _end_col_offset = _token->end_col_offset;
6629 UNUSED(_end_col_offset); // Only used by EXTRA macro
6630 _res = _Py_Starred ( a , Load , EXTRA );
6631 if (_res == NULL && PyErr_Occurred()) {
6632 p->error_indicator = 1;
6633 D(p->level--);
6634 return NULL;
6635 }
6636 goto done;
6637 }
6638 p->mark = _mark;
6639 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6641 }
6642 { // named_expression
6643 if (p->error_indicator) {
6644 D(p->level--);
6645 return NULL;
6646 }
6647 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
6648 expr_ty named_expression_var;
6649 if (
6650 (named_expression_var = named_expression_rule(p)) // named_expression
6651 )
6652 {
6653 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
6654 _res = named_expression_var;
6655 goto done;
6656 }
6657 p->mark = _mark;
6658 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
6660 }
6661 _res = NULL;
6662 done:
6663 D(p->level--);
6664 return _res;
6665}
6666
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006667// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006668static expr_ty
6669named_expression_rule(Parser *p)
6670{
6671 D(p->level++);
6672 if (p->error_indicator) {
6673 D(p->level--);
6674 return NULL;
6675 }
6676 expr_ty _res = NULL;
6677 int _mark = p->mark;
6678 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6679 p->error_indicator = 1;
6680 D(p->level--);
6681 return NULL;
6682 }
6683 int _start_lineno = p->tokens[_mark]->lineno;
6684 UNUSED(_start_lineno); // Only used by EXTRA macro
6685 int _start_col_offset = p->tokens[_mark]->col_offset;
6686 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006687 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006688 if (p->error_indicator) {
6689 D(p->level--);
6690 return NULL;
6691 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006692 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6693 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006694 Token * _literal;
6695 expr_ty a;
6696 expr_ty b;
6697 if (
6698 (a = _PyPegen_name_token(p)) // NAME
6699 &&
6700 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
6701 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006702 (_cut_var = 1)
6703 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006704 (b = expression_rule(p)) // expression
6705 )
6706 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006707 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 +01006708 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6709 if (_token == NULL) {
6710 D(p->level--);
6711 return NULL;
6712 }
6713 int _end_lineno = _token->end_lineno;
6714 UNUSED(_end_lineno); // Only used by EXTRA macro
6715 int _end_col_offset = _token->end_col_offset;
6716 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006717 _res = _Py_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006718 if (_res == NULL && PyErr_Occurred()) {
6719 p->error_indicator = 1;
6720 D(p->level--);
6721 return NULL;
6722 }
6723 goto done;
6724 }
6725 p->mark = _mark;
6726 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6728 if (_cut_var) {
6729 D(p->level--);
6730 return NULL;
6731 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006732 }
6733 { // expression !':='
6734 if (p->error_indicator) {
6735 D(p->level--);
6736 return NULL;
6737 }
6738 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6739 expr_ty expression_var;
6740 if (
6741 (expression_var = expression_rule(p)) // expression
6742 &&
6743 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
6744 )
6745 {
6746 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6747 _res = expression_var;
6748 goto done;
6749 }
6750 p->mark = _mark;
6751 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
6753 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006754 if (p->call_invalid_rules) { // invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006755 if (p->error_indicator) {
6756 D(p->level--);
6757 return NULL;
6758 }
6759 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6760 void *invalid_named_expression_var;
6761 if (
6762 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
6763 )
6764 {
6765 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6766 _res = invalid_named_expression_var;
6767 goto done;
6768 }
6769 p->mark = _mark;
6770 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
6772 }
6773 _res = NULL;
6774 done:
6775 D(p->level--);
6776 return _res;
6777}
6778
6779// annotated_rhs: yield_expr | star_expressions
6780static expr_ty
6781annotated_rhs_rule(Parser *p)
6782{
6783 D(p->level++);
6784 if (p->error_indicator) {
6785 D(p->level--);
6786 return NULL;
6787 }
6788 expr_ty _res = NULL;
6789 int _mark = p->mark;
6790 { // yield_expr
6791 if (p->error_indicator) {
6792 D(p->level--);
6793 return NULL;
6794 }
6795 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6796 expr_ty yield_expr_var;
6797 if (
6798 (yield_expr_var = yield_expr_rule(p)) // yield_expr
6799 )
6800 {
6801 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6802 _res = yield_expr_var;
6803 goto done;
6804 }
6805 p->mark = _mark;
6806 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
6808 }
6809 { // star_expressions
6810 if (p->error_indicator) {
6811 D(p->level--);
6812 return NULL;
6813 }
6814 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6815 expr_ty star_expressions_var;
6816 if (
6817 (star_expressions_var = star_expressions_rule(p)) // star_expressions
6818 )
6819 {
6820 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6821 _res = star_expressions_var;
6822 goto done;
6823 }
6824 p->mark = _mark;
6825 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
6827 }
6828 _res = NULL;
6829 done:
6830 D(p->level--);
6831 return _res;
6832}
6833
6834// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6835static expr_ty
6836expressions_rule(Parser *p)
6837{
6838 D(p->level++);
6839 if (p->error_indicator) {
6840 D(p->level--);
6841 return NULL;
6842 }
6843 expr_ty _res = NULL;
6844 int _mark = p->mark;
6845 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6846 p->error_indicator = 1;
6847 D(p->level--);
6848 return NULL;
6849 }
6850 int _start_lineno = p->tokens[_mark]->lineno;
6851 UNUSED(_start_lineno); // Only used by EXTRA macro
6852 int _start_col_offset = p->tokens[_mark]->col_offset;
6853 UNUSED(_start_col_offset); // Only used by EXTRA macro
6854 { // expression ((',' expression))+ ','?
6855 if (p->error_indicator) {
6856 D(p->level--);
6857 return NULL;
6858 }
6859 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6860 void *_opt_var;
6861 UNUSED(_opt_var); // Silence compiler warnings
6862 expr_ty a;
6863 asdl_seq * b;
6864 if (
6865 (a = expression_rule(p)) // expression
6866 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006867 (b = _loop1_73_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006868 &&
6869 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6870 )
6871 {
6872 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6873 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6874 if (_token == NULL) {
6875 D(p->level--);
6876 return NULL;
6877 }
6878 int _end_lineno = _token->end_lineno;
6879 UNUSED(_end_lineno); // Only used by EXTRA macro
6880 int _end_col_offset = _token->end_col_offset;
6881 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006882 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006883 if (_res == NULL && PyErr_Occurred()) {
6884 p->error_indicator = 1;
6885 D(p->level--);
6886 return NULL;
6887 }
6888 goto done;
6889 }
6890 p->mark = _mark;
6891 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
6893 }
6894 { // expression ','
6895 if (p->error_indicator) {
6896 D(p->level--);
6897 return NULL;
6898 }
6899 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
6900 Token * _literal;
6901 expr_ty a;
6902 if (
6903 (a = expression_rule(p)) // expression
6904 &&
6905 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6906 )
6907 {
6908 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
6909 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6910 if (_token == NULL) {
6911 D(p->level--);
6912 return NULL;
6913 }
6914 int _end_lineno = _token->end_lineno;
6915 UNUSED(_end_lineno); // Only used by EXTRA macro
6916 int _end_col_offset = _token->end_col_offset;
6917 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006918 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006919 if (_res == NULL && PyErr_Occurred()) {
6920 p->error_indicator = 1;
6921 D(p->level--);
6922 return NULL;
6923 }
6924 goto done;
6925 }
6926 p->mark = _mark;
6927 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
6929 }
6930 { // expression
6931 if (p->error_indicator) {
6932 D(p->level--);
6933 return NULL;
6934 }
6935 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6936 expr_ty expression_var;
6937 if (
6938 (expression_var = expression_rule(p)) // expression
6939 )
6940 {
6941 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6942 _res = expression_var;
6943 goto done;
6944 }
6945 p->mark = _mark;
6946 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6948 }
6949 _res = NULL;
6950 done:
6951 D(p->level--);
6952 return _res;
6953}
6954
6955// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
6956static expr_ty
6957expression_rule(Parser *p)
6958{
6959 D(p->level++);
6960 if (p->error_indicator) {
6961 D(p->level--);
6962 return NULL;
6963 }
6964 expr_ty _res = NULL;
6965 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
6966 D(p->level--);
6967 return _res;
6968 }
6969 int _mark = p->mark;
6970 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6971 p->error_indicator = 1;
6972 D(p->level--);
6973 return NULL;
6974 }
6975 int _start_lineno = p->tokens[_mark]->lineno;
6976 UNUSED(_start_lineno); // Only used by EXTRA macro
6977 int _start_col_offset = p->tokens[_mark]->col_offset;
6978 UNUSED(_start_col_offset); // Only used by EXTRA macro
6979 { // disjunction 'if' disjunction 'else' expression
6980 if (p->error_indicator) {
6981 D(p->level--);
6982 return NULL;
6983 }
6984 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
6985 Token * _keyword;
6986 Token * _keyword_1;
6987 expr_ty a;
6988 expr_ty b;
6989 expr_ty c;
6990 if (
6991 (a = disjunction_rule(p)) // disjunction
6992 &&
6993 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
6994 &&
6995 (b = disjunction_rule(p)) // disjunction
6996 &&
6997 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
6998 &&
6999 (c = expression_rule(p)) // expression
7000 )
7001 {
7002 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7003 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7004 if (_token == NULL) {
7005 D(p->level--);
7006 return NULL;
7007 }
7008 int _end_lineno = _token->end_lineno;
7009 UNUSED(_end_lineno); // Only used by EXTRA macro
7010 int _end_col_offset = _token->end_col_offset;
7011 UNUSED(_end_col_offset); // Only used by EXTRA macro
7012 _res = _Py_IfExp ( b , a , c , EXTRA );
7013 if (_res == NULL && PyErr_Occurred()) {
7014 p->error_indicator = 1;
7015 D(p->level--);
7016 return NULL;
7017 }
7018 goto done;
7019 }
7020 p->mark = _mark;
7021 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7023 }
7024 { // disjunction
7025 if (p->error_indicator) {
7026 D(p->level--);
7027 return NULL;
7028 }
7029 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
7030 expr_ty disjunction_var;
7031 if (
7032 (disjunction_var = disjunction_rule(p)) // disjunction
7033 )
7034 {
7035 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
7036 _res = disjunction_var;
7037 goto done;
7038 }
7039 p->mark = _mark;
7040 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
7042 }
7043 { // lambdef
7044 if (p->error_indicator) {
7045 D(p->level--);
7046 return NULL;
7047 }
7048 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
7049 expr_ty lambdef_var;
7050 if (
7051 (lambdef_var = lambdef_rule(p)) // lambdef
7052 )
7053 {
7054 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
7055 _res = lambdef_var;
7056 goto done;
7057 }
7058 p->mark = _mark;
7059 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
7061 }
7062 _res = NULL;
7063 done:
7064 _PyPegen_insert_memo(p, _mark, expression_type, _res);
7065 D(p->level--);
7066 return _res;
7067}
7068
7069// lambdef: 'lambda' lambda_params? ':' expression
7070static expr_ty
7071lambdef_rule(Parser *p)
7072{
7073 D(p->level++);
7074 if (p->error_indicator) {
7075 D(p->level--);
7076 return NULL;
7077 }
7078 expr_ty _res = NULL;
7079 int _mark = p->mark;
7080 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7081 p->error_indicator = 1;
7082 D(p->level--);
7083 return NULL;
7084 }
7085 int _start_lineno = p->tokens[_mark]->lineno;
7086 UNUSED(_start_lineno); // Only used by EXTRA macro
7087 int _start_col_offset = p->tokens[_mark]->col_offset;
7088 UNUSED(_start_col_offset); // Only used by EXTRA macro
7089 { // 'lambda' lambda_params? ':' expression
7090 if (p->error_indicator) {
7091 D(p->level--);
7092 return NULL;
7093 }
7094 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7095 Token * _keyword;
7096 Token * _literal;
7097 void *a;
7098 expr_ty b;
7099 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03007100 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007101 &&
7102 (a = lambda_params_rule(p), 1) // lambda_params?
7103 &&
7104 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7105 &&
7106 (b = expression_rule(p)) // expression
7107 )
7108 {
7109 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7110 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7111 if (_token == NULL) {
7112 D(p->level--);
7113 return NULL;
7114 }
7115 int _end_lineno = _token->end_lineno;
7116 UNUSED(_end_lineno); // Only used by EXTRA macro
7117 int _end_col_offset = _token->end_col_offset;
7118 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03007119 _res = _Py_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007120 if (_res == NULL && PyErr_Occurred()) {
7121 p->error_indicator = 1;
7122 D(p->level--);
7123 return NULL;
7124 }
7125 goto done;
7126 }
7127 p->mark = _mark;
7128 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
7129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7130 }
7131 _res = NULL;
7132 done:
7133 D(p->level--);
7134 return _res;
7135}
7136
7137// lambda_params: invalid_lambda_parameters | lambda_parameters
7138static arguments_ty
7139lambda_params_rule(Parser *p)
7140{
7141 D(p->level++);
7142 if (p->error_indicator) {
7143 D(p->level--);
7144 return NULL;
7145 }
7146 arguments_ty _res = NULL;
7147 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007148 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007149 if (p->error_indicator) {
7150 D(p->level--);
7151 return NULL;
7152 }
7153 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7154 void *invalid_lambda_parameters_var;
7155 if (
7156 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7157 )
7158 {
7159 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7160 _res = invalid_lambda_parameters_var;
7161 goto done;
7162 }
7163 p->mark = _mark;
7164 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7166 }
7167 { // lambda_parameters
7168 if (p->error_indicator) {
7169 D(p->level--);
7170 return NULL;
7171 }
7172 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7173 arguments_ty lambda_parameters_var;
7174 if (
7175 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7176 )
7177 {
7178 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7179 _res = lambda_parameters_var;
7180 goto done;
7181 }
7182 p->mark = _mark;
7183 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
7185 }
7186 _res = NULL;
7187 done:
7188 D(p->level--);
7189 return _res;
7190}
7191
7192// lambda_parameters:
7193// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7194// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7195// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7196// | lambda_param_with_default+ lambda_star_etc?
7197// | lambda_star_etc
7198static arguments_ty
7199lambda_parameters_rule(Parser *p)
7200{
7201 D(p->level++);
7202 if (p->error_indicator) {
7203 D(p->level--);
7204 return NULL;
7205 }
7206 arguments_ty _res = NULL;
7207 int _mark = p->mark;
7208 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7209 if (p->error_indicator) {
7210 D(p->level--);
7211 return NULL;
7212 }
7213 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 +01007214 asdl_arg_seq* a;
7215 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007216 asdl_seq * c;
7217 void *d;
7218 if (
7219 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
7220 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007221 (b = (asdl_arg_seq*)_loop0_74_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007222 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007223 (c = _loop0_75_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007224 &&
7225 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7226 )
7227 {
7228 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?"));
7229 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7230 if (_res == NULL && PyErr_Occurred()) {
7231 p->error_indicator = 1;
7232 D(p->level--);
7233 return NULL;
7234 }
7235 goto done;
7236 }
7237 p->mark = _mark;
7238 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
7240 }
7241 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7242 if (p->error_indicator) {
7243 D(p->level--);
7244 return NULL;
7245 }
7246 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?"));
7247 SlashWithDefault* a;
7248 asdl_seq * b;
7249 void *c;
7250 if (
7251 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
7252 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007253 (b = _loop0_76_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007254 &&
7255 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7256 )
7257 {
7258 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?"));
7259 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7260 if (_res == NULL && PyErr_Occurred()) {
7261 p->error_indicator = 1;
7262 D(p->level--);
7263 return NULL;
7264 }
7265 goto done;
7266 }
7267 p->mark = _mark;
7268 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
7270 }
7271 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7272 if (p->error_indicator) {
7273 D(p->level--);
7274 return NULL;
7275 }
7276 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 +01007277 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007278 asdl_seq * b;
7279 void *c;
7280 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007281 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007282 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007283 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007284 &&
7285 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7286 )
7287 {
7288 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?"));
7289 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7290 if (_res == NULL && PyErr_Occurred()) {
7291 p->error_indicator = 1;
7292 D(p->level--);
7293 return NULL;
7294 }
7295 goto done;
7296 }
7297 p->mark = _mark;
7298 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
7300 }
7301 { // lambda_param_with_default+ lambda_star_etc?
7302 if (p->error_indicator) {
7303 D(p->level--);
7304 return NULL;
7305 }
7306 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7307 asdl_seq * a;
7308 void *b;
7309 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007310 (a = _loop1_79_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007311 &&
7312 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7313 )
7314 {
7315 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7316 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7317 if (_res == NULL && PyErr_Occurred()) {
7318 p->error_indicator = 1;
7319 D(p->level--);
7320 return NULL;
7321 }
7322 goto done;
7323 }
7324 p->mark = _mark;
7325 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7327 }
7328 { // lambda_star_etc
7329 if (p->error_indicator) {
7330 D(p->level--);
7331 return NULL;
7332 }
7333 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7334 StarEtc* a;
7335 if (
7336 (a = lambda_star_etc_rule(p)) // lambda_star_etc
7337 )
7338 {
7339 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7340 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7341 if (_res == NULL && PyErr_Occurred()) {
7342 p->error_indicator = 1;
7343 D(p->level--);
7344 return NULL;
7345 }
7346 goto done;
7347 }
7348 p->mark = _mark;
7349 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
7351 }
7352 _res = NULL;
7353 done:
7354 D(p->level--);
7355 return _res;
7356}
7357
7358// lambda_slash_no_default:
7359// | lambda_param_no_default+ '/' ','
7360// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007361static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007362lambda_slash_no_default_rule(Parser *p)
7363{
7364 D(p->level++);
7365 if (p->error_indicator) {
7366 D(p->level--);
7367 return NULL;
7368 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007369 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007370 int _mark = p->mark;
7371 { // lambda_param_no_default+ '/' ','
7372 if (p->error_indicator) {
7373 D(p->level--);
7374 return NULL;
7375 }
7376 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7377 Token * _literal;
7378 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007379 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007380 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007381 (a = (asdl_arg_seq*)_loop1_80_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007382 &&
7383 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7384 &&
7385 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7386 )
7387 {
7388 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7389 _res = a;
7390 if (_res == NULL && PyErr_Occurred()) {
7391 p->error_indicator = 1;
7392 D(p->level--);
7393 return NULL;
7394 }
7395 goto done;
7396 }
7397 p->mark = _mark;
7398 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7400 }
7401 { // lambda_param_no_default+ '/' &':'
7402 if (p->error_indicator) {
7403 D(p->level--);
7404 return NULL;
7405 }
7406 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7407 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007408 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007409 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007410 (a = (asdl_arg_seq*)_loop1_81_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007411 &&
7412 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7413 &&
7414 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7415 )
7416 {
7417 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7418 _res = a;
7419 if (_res == NULL && PyErr_Occurred()) {
7420 p->error_indicator = 1;
7421 D(p->level--);
7422 return NULL;
7423 }
7424 goto done;
7425 }
7426 p->mark = _mark;
7427 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7429 }
7430 _res = NULL;
7431 done:
7432 D(p->level--);
7433 return _res;
7434}
7435
7436// lambda_slash_with_default:
7437// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7438// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
7439static SlashWithDefault*
7440lambda_slash_with_default_rule(Parser *p)
7441{
7442 D(p->level++);
7443 if (p->error_indicator) {
7444 D(p->level--);
7445 return NULL;
7446 }
7447 SlashWithDefault* _res = NULL;
7448 int _mark = p->mark;
7449 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
7450 if (p->error_indicator) {
7451 D(p->level--);
7452 return NULL;
7453 }
7454 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+ '/' ','"));
7455 Token * _literal;
7456 Token * _literal_1;
7457 asdl_seq * a;
7458 asdl_seq * b;
7459 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007460 (a = _loop0_82_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007461 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007462 (b = _loop1_83_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007463 &&
7464 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7465 &&
7466 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7467 )
7468 {
7469 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 +01007470 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007471 if (_res == NULL && PyErr_Occurred()) {
7472 p->error_indicator = 1;
7473 D(p->level--);
7474 return NULL;
7475 }
7476 goto done;
7477 }
7478 p->mark = _mark;
7479 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
7481 }
7482 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
7483 if (p->error_indicator) {
7484 D(p->level--);
7485 return NULL;
7486 }
7487 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+ '/' &':'"));
7488 Token * _literal;
7489 asdl_seq * a;
7490 asdl_seq * b;
7491 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007492 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007493 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007494 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007495 &&
7496 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7497 &&
7498 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7499 )
7500 {
7501 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 +01007502 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007503 if (_res == NULL && PyErr_Occurred()) {
7504 p->error_indicator = 1;
7505 D(p->level--);
7506 return NULL;
7507 }
7508 goto done;
7509 }
7510 p->mark = _mark;
7511 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
7513 }
7514 _res = NULL;
7515 done:
7516 D(p->level--);
7517 return _res;
7518}
7519
7520// lambda_star_etc:
7521// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7522// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7523// | lambda_kwds
7524// | invalid_lambda_star_etc
7525static StarEtc*
7526lambda_star_etc_rule(Parser *p)
7527{
7528 D(p->level++);
7529 if (p->error_indicator) {
7530 D(p->level--);
7531 return NULL;
7532 }
7533 StarEtc* _res = NULL;
7534 int _mark = p->mark;
7535 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7536 if (p->error_indicator) {
7537 D(p->level--);
7538 return NULL;
7539 }
7540 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?"));
7541 Token * _literal;
7542 arg_ty a;
7543 asdl_seq * b;
7544 void *c;
7545 if (
7546 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7547 &&
7548 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7549 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007550 (b = _loop0_86_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007551 &&
7552 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7553 )
7554 {
7555 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?"));
7556 _res = _PyPegen_star_etc ( p , a , b , c );
7557 if (_res == NULL && PyErr_Occurred()) {
7558 p->error_indicator = 1;
7559 D(p->level--);
7560 return NULL;
7561 }
7562 goto done;
7563 }
7564 p->mark = _mark;
7565 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
7567 }
7568 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
7569 if (p->error_indicator) {
7570 D(p->level--);
7571 return NULL;
7572 }
7573 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7574 Token * _literal;
7575 Token * _literal_1;
7576 asdl_seq * b;
7577 void *c;
7578 if (
7579 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7580 &&
7581 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7582 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007583 (b = _loop1_87_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007584 &&
7585 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7586 )
7587 {
7588 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7589 _res = _PyPegen_star_etc ( p , NULL , b , c );
7590 if (_res == NULL && PyErr_Occurred()) {
7591 p->error_indicator = 1;
7592 D(p->level--);
7593 return NULL;
7594 }
7595 goto done;
7596 }
7597 p->mark = _mark;
7598 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7600 }
7601 { // lambda_kwds
7602 if (p->error_indicator) {
7603 D(p->level--);
7604 return NULL;
7605 }
7606 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7607 arg_ty a;
7608 if (
7609 (a = lambda_kwds_rule(p)) // lambda_kwds
7610 )
7611 {
7612 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7613 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7614 if (_res == NULL && PyErr_Occurred()) {
7615 p->error_indicator = 1;
7616 D(p->level--);
7617 return NULL;
7618 }
7619 goto done;
7620 }
7621 p->mark = _mark;
7622 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
7624 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007625 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007626 if (p->error_indicator) {
7627 D(p->level--);
7628 return NULL;
7629 }
7630 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7631 void *invalid_lambda_star_etc_var;
7632 if (
7633 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
7634 )
7635 {
7636 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7637 _res = invalid_lambda_star_etc_var;
7638 goto done;
7639 }
7640 p->mark = _mark;
7641 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
7643 }
7644 _res = NULL;
7645 done:
7646 D(p->level--);
7647 return _res;
7648}
7649
7650// lambda_kwds: '**' lambda_param_no_default
7651static arg_ty
7652lambda_kwds_rule(Parser *p)
7653{
7654 D(p->level++);
7655 if (p->error_indicator) {
7656 D(p->level--);
7657 return NULL;
7658 }
7659 arg_ty _res = NULL;
7660 int _mark = p->mark;
7661 { // '**' lambda_param_no_default
7662 if (p->error_indicator) {
7663 D(p->level--);
7664 return NULL;
7665 }
7666 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7667 Token * _literal;
7668 arg_ty a;
7669 if (
7670 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7671 &&
7672 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7673 )
7674 {
7675 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7676 _res = a;
7677 if (_res == NULL && PyErr_Occurred()) {
7678 p->error_indicator = 1;
7679 D(p->level--);
7680 return NULL;
7681 }
7682 goto done;
7683 }
7684 p->mark = _mark;
7685 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
7687 }
7688 _res = NULL;
7689 done:
7690 D(p->level--);
7691 return _res;
7692}
7693
7694// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7695static arg_ty
7696lambda_param_no_default_rule(Parser *p)
7697{
7698 D(p->level++);
7699 if (p->error_indicator) {
7700 D(p->level--);
7701 return NULL;
7702 }
7703 arg_ty _res = NULL;
7704 int _mark = p->mark;
7705 { // lambda_param ','
7706 if (p->error_indicator) {
7707 D(p->level--);
7708 return NULL;
7709 }
7710 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7711 Token * _literal;
7712 arg_ty a;
7713 if (
7714 (a = lambda_param_rule(p)) // lambda_param
7715 &&
7716 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7717 )
7718 {
7719 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7720 _res = a;
7721 if (_res == NULL && PyErr_Occurred()) {
7722 p->error_indicator = 1;
7723 D(p->level--);
7724 return NULL;
7725 }
7726 goto done;
7727 }
7728 p->mark = _mark;
7729 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
7731 }
7732 { // lambda_param &':'
7733 if (p->error_indicator) {
7734 D(p->level--);
7735 return NULL;
7736 }
7737 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7738 arg_ty a;
7739 if (
7740 (a = lambda_param_rule(p)) // lambda_param
7741 &&
7742 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7743 )
7744 {
7745 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7746 _res = a;
7747 if (_res == NULL && PyErr_Occurred()) {
7748 p->error_indicator = 1;
7749 D(p->level--);
7750 return NULL;
7751 }
7752 goto done;
7753 }
7754 p->mark = _mark;
7755 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
7757 }
7758 _res = NULL;
7759 done:
7760 D(p->level--);
7761 return _res;
7762}
7763
7764// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7765static NameDefaultPair*
7766lambda_param_with_default_rule(Parser *p)
7767{
7768 D(p->level++);
7769 if (p->error_indicator) {
7770 D(p->level--);
7771 return NULL;
7772 }
7773 NameDefaultPair* _res = NULL;
7774 int _mark = p->mark;
7775 { // lambda_param default ','
7776 if (p->error_indicator) {
7777 D(p->level--);
7778 return NULL;
7779 }
7780 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7781 Token * _literal;
7782 arg_ty a;
7783 expr_ty c;
7784 if (
7785 (a = lambda_param_rule(p)) // lambda_param
7786 &&
7787 (c = default_rule(p)) // default
7788 &&
7789 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7790 )
7791 {
7792 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7793 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7794 if (_res == NULL && PyErr_Occurred()) {
7795 p->error_indicator = 1;
7796 D(p->level--);
7797 return NULL;
7798 }
7799 goto done;
7800 }
7801 p->mark = _mark;
7802 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
7804 }
7805 { // lambda_param default &':'
7806 if (p->error_indicator) {
7807 D(p->level--);
7808 return NULL;
7809 }
7810 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7811 arg_ty a;
7812 expr_ty c;
7813 if (
7814 (a = lambda_param_rule(p)) // lambda_param
7815 &&
7816 (c = default_rule(p)) // default
7817 &&
7818 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7819 )
7820 {
7821 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7822 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7823 if (_res == NULL && PyErr_Occurred()) {
7824 p->error_indicator = 1;
7825 D(p->level--);
7826 return NULL;
7827 }
7828 goto done;
7829 }
7830 p->mark = _mark;
7831 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
7833 }
7834 _res = NULL;
7835 done:
7836 D(p->level--);
7837 return _res;
7838}
7839
7840// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7841static NameDefaultPair*
7842lambda_param_maybe_default_rule(Parser *p)
7843{
7844 D(p->level++);
7845 if (p->error_indicator) {
7846 D(p->level--);
7847 return NULL;
7848 }
7849 NameDefaultPair* _res = NULL;
7850 int _mark = p->mark;
7851 { // lambda_param default? ','
7852 if (p->error_indicator) {
7853 D(p->level--);
7854 return NULL;
7855 }
7856 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7857 Token * _literal;
7858 arg_ty a;
7859 void *c;
7860 if (
7861 (a = lambda_param_rule(p)) // lambda_param
7862 &&
7863 (c = default_rule(p), 1) // default?
7864 &&
7865 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7866 )
7867 {
7868 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7869 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7870 if (_res == NULL && PyErr_Occurred()) {
7871 p->error_indicator = 1;
7872 D(p->level--);
7873 return NULL;
7874 }
7875 goto done;
7876 }
7877 p->mark = _mark;
7878 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
7880 }
7881 { // lambda_param default? &':'
7882 if (p->error_indicator) {
7883 D(p->level--);
7884 return NULL;
7885 }
7886 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7887 arg_ty a;
7888 void *c;
7889 if (
7890 (a = lambda_param_rule(p)) // lambda_param
7891 &&
7892 (c = default_rule(p), 1) // default?
7893 &&
7894 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7895 )
7896 {
7897 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7898 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7899 if (_res == NULL && PyErr_Occurred()) {
7900 p->error_indicator = 1;
7901 D(p->level--);
7902 return NULL;
7903 }
7904 goto done;
7905 }
7906 p->mark = _mark;
7907 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
7909 }
7910 _res = NULL;
7911 done:
7912 D(p->level--);
7913 return _res;
7914}
7915
7916// lambda_param: NAME
7917static arg_ty
7918lambda_param_rule(Parser *p)
7919{
7920 D(p->level++);
7921 if (p->error_indicator) {
7922 D(p->level--);
7923 return NULL;
7924 }
7925 arg_ty _res = NULL;
7926 int _mark = p->mark;
7927 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7928 p->error_indicator = 1;
7929 D(p->level--);
7930 return NULL;
7931 }
7932 int _start_lineno = p->tokens[_mark]->lineno;
7933 UNUSED(_start_lineno); // Only used by EXTRA macro
7934 int _start_col_offset = p->tokens[_mark]->col_offset;
7935 UNUSED(_start_col_offset); // Only used by EXTRA macro
7936 { // NAME
7937 if (p->error_indicator) {
7938 D(p->level--);
7939 return NULL;
7940 }
7941 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7942 expr_ty a;
7943 if (
7944 (a = _PyPegen_name_token(p)) // NAME
7945 )
7946 {
7947 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7949 if (_token == NULL) {
7950 D(p->level--);
7951 return NULL;
7952 }
7953 int _end_lineno = _token->end_lineno;
7954 UNUSED(_end_lineno); // Only used by EXTRA macro
7955 int _end_col_offset = _token->end_col_offset;
7956 UNUSED(_end_col_offset); // Only used by EXTRA macro
7957 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
7958 if (_res == NULL && PyErr_Occurred()) {
7959 p->error_indicator = 1;
7960 D(p->level--);
7961 return NULL;
7962 }
7963 goto done;
7964 }
7965 p->mark = _mark;
7966 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
7967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7968 }
7969 _res = NULL;
7970 done:
7971 D(p->level--);
7972 return _res;
7973}
7974
7975// disjunction: conjunction (('or' conjunction))+ | conjunction
7976static expr_ty
7977disjunction_rule(Parser *p)
7978{
7979 D(p->level++);
7980 if (p->error_indicator) {
7981 D(p->level--);
7982 return NULL;
7983 }
7984 expr_ty _res = NULL;
7985 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
7986 D(p->level--);
7987 return _res;
7988 }
7989 int _mark = p->mark;
7990 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7991 p->error_indicator = 1;
7992 D(p->level--);
7993 return NULL;
7994 }
7995 int _start_lineno = p->tokens[_mark]->lineno;
7996 UNUSED(_start_lineno); // Only used by EXTRA macro
7997 int _start_col_offset = p->tokens[_mark]->col_offset;
7998 UNUSED(_start_col_offset); // Only used by EXTRA macro
7999 { // conjunction (('or' conjunction))+
8000 if (p->error_indicator) {
8001 D(p->level--);
8002 return NULL;
8003 }
8004 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8005 expr_ty a;
8006 asdl_seq * b;
8007 if (
8008 (a = conjunction_rule(p)) // conjunction
8009 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008010 (b = _loop1_88_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008011 )
8012 {
8013 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8014 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8015 if (_token == NULL) {
8016 D(p->level--);
8017 return NULL;
8018 }
8019 int _end_lineno = _token->end_lineno;
8020 UNUSED(_end_lineno); // Only used by EXTRA macro
8021 int _end_col_offset = _token->end_col_offset;
8022 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008023 _res = _Py_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008024 if (_res == NULL && PyErr_Occurred()) {
8025 p->error_indicator = 1;
8026 D(p->level--);
8027 return NULL;
8028 }
8029 goto done;
8030 }
8031 p->mark = _mark;
8032 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
8034 }
8035 { // conjunction
8036 if (p->error_indicator) {
8037 D(p->level--);
8038 return NULL;
8039 }
8040 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
8041 expr_ty conjunction_var;
8042 if (
8043 (conjunction_var = conjunction_rule(p)) // conjunction
8044 )
8045 {
8046 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
8047 _res = conjunction_var;
8048 goto done;
8049 }
8050 p->mark = _mark;
8051 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
8053 }
8054 _res = NULL;
8055 done:
8056 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
8057 D(p->level--);
8058 return _res;
8059}
8060
8061// conjunction: inversion (('and' inversion))+ | inversion
8062static expr_ty
8063conjunction_rule(Parser *p)
8064{
8065 D(p->level++);
8066 if (p->error_indicator) {
8067 D(p->level--);
8068 return NULL;
8069 }
8070 expr_ty _res = NULL;
8071 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8072 D(p->level--);
8073 return _res;
8074 }
8075 int _mark = p->mark;
8076 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8077 p->error_indicator = 1;
8078 D(p->level--);
8079 return NULL;
8080 }
8081 int _start_lineno = p->tokens[_mark]->lineno;
8082 UNUSED(_start_lineno); // Only used by EXTRA macro
8083 int _start_col_offset = p->tokens[_mark]->col_offset;
8084 UNUSED(_start_col_offset); // Only used by EXTRA macro
8085 { // inversion (('and' inversion))+
8086 if (p->error_indicator) {
8087 D(p->level--);
8088 return NULL;
8089 }
8090 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8091 expr_ty a;
8092 asdl_seq * b;
8093 if (
8094 (a = inversion_rule(p)) // inversion
8095 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008096 (b = _loop1_89_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008097 )
8098 {
8099 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8100 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8101 if (_token == NULL) {
8102 D(p->level--);
8103 return NULL;
8104 }
8105 int _end_lineno = _token->end_lineno;
8106 UNUSED(_end_lineno); // Only used by EXTRA macro
8107 int _end_col_offset = _token->end_col_offset;
8108 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008109 _res = _Py_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008110 if (_res == NULL && PyErr_Occurred()) {
8111 p->error_indicator = 1;
8112 D(p->level--);
8113 return NULL;
8114 }
8115 goto done;
8116 }
8117 p->mark = _mark;
8118 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
8120 }
8121 { // inversion
8122 if (p->error_indicator) {
8123 D(p->level--);
8124 return NULL;
8125 }
8126 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
8127 expr_ty inversion_var;
8128 if (
8129 (inversion_var = inversion_rule(p)) // inversion
8130 )
8131 {
8132 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
8133 _res = inversion_var;
8134 goto done;
8135 }
8136 p->mark = _mark;
8137 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
8139 }
8140 _res = NULL;
8141 done:
8142 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
8143 D(p->level--);
8144 return _res;
8145}
8146
8147// inversion: 'not' inversion | comparison
8148static expr_ty
8149inversion_rule(Parser *p)
8150{
8151 D(p->level++);
8152 if (p->error_indicator) {
8153 D(p->level--);
8154 return NULL;
8155 }
8156 expr_ty _res = NULL;
8157 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8158 D(p->level--);
8159 return _res;
8160 }
8161 int _mark = p->mark;
8162 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8163 p->error_indicator = 1;
8164 D(p->level--);
8165 return NULL;
8166 }
8167 int _start_lineno = p->tokens[_mark]->lineno;
8168 UNUSED(_start_lineno); // Only used by EXTRA macro
8169 int _start_col_offset = p->tokens[_mark]->col_offset;
8170 UNUSED(_start_col_offset); // Only used by EXTRA macro
8171 { // 'not' inversion
8172 if (p->error_indicator) {
8173 D(p->level--);
8174 return NULL;
8175 }
8176 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8177 Token * _keyword;
8178 expr_ty a;
8179 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008180 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008181 &&
8182 (a = inversion_rule(p)) // inversion
8183 )
8184 {
8185 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8186 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8187 if (_token == NULL) {
8188 D(p->level--);
8189 return NULL;
8190 }
8191 int _end_lineno = _token->end_lineno;
8192 UNUSED(_end_lineno); // Only used by EXTRA macro
8193 int _end_col_offset = _token->end_col_offset;
8194 UNUSED(_end_col_offset); // Only used by EXTRA macro
8195 _res = _Py_UnaryOp ( Not , a , EXTRA );
8196 if (_res == NULL && PyErr_Occurred()) {
8197 p->error_indicator = 1;
8198 D(p->level--);
8199 return NULL;
8200 }
8201 goto done;
8202 }
8203 p->mark = _mark;
8204 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
8206 }
8207 { // comparison
8208 if (p->error_indicator) {
8209 D(p->level--);
8210 return NULL;
8211 }
8212 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
8213 expr_ty comparison_var;
8214 if (
8215 (comparison_var = comparison_rule(p)) // comparison
8216 )
8217 {
8218 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
8219 _res = comparison_var;
8220 goto done;
8221 }
8222 p->mark = _mark;
8223 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
8225 }
8226 _res = NULL;
8227 done:
8228 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
8229 D(p->level--);
8230 return _res;
8231}
8232
8233// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8234static expr_ty
8235comparison_rule(Parser *p)
8236{
8237 D(p->level++);
8238 if (p->error_indicator) {
8239 D(p->level--);
8240 return NULL;
8241 }
8242 expr_ty _res = NULL;
8243 int _mark = p->mark;
8244 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8245 p->error_indicator = 1;
8246 D(p->level--);
8247 return NULL;
8248 }
8249 int _start_lineno = p->tokens[_mark]->lineno;
8250 UNUSED(_start_lineno); // Only used by EXTRA macro
8251 int _start_col_offset = p->tokens[_mark]->col_offset;
8252 UNUSED(_start_col_offset); // Only used by EXTRA macro
8253 { // bitwise_or compare_op_bitwise_or_pair+
8254 if (p->error_indicator) {
8255 D(p->level--);
8256 return NULL;
8257 }
8258 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8259 expr_ty a;
8260 asdl_seq * b;
8261 if (
8262 (a = bitwise_or_rule(p)) // bitwise_or
8263 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008264 (b = _loop1_90_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008265 )
8266 {
8267 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8268 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8269 if (_token == NULL) {
8270 D(p->level--);
8271 return NULL;
8272 }
8273 int _end_lineno = _token->end_lineno;
8274 UNUSED(_end_lineno); // Only used by EXTRA macro
8275 int _end_col_offset = _token->end_col_offset;
8276 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008277 _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 +01008278 if (_res == NULL && PyErr_Occurred()) {
8279 p->error_indicator = 1;
8280 D(p->level--);
8281 return NULL;
8282 }
8283 goto done;
8284 }
8285 p->mark = _mark;
8286 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8288 }
8289 { // bitwise_or
8290 if (p->error_indicator) {
8291 D(p->level--);
8292 return NULL;
8293 }
8294 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8295 expr_ty bitwise_or_var;
8296 if (
8297 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
8298 )
8299 {
8300 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8301 _res = bitwise_or_var;
8302 goto done;
8303 }
8304 p->mark = _mark;
8305 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
8307 }
8308 _res = NULL;
8309 done:
8310 D(p->level--);
8311 return _res;
8312}
8313
8314// compare_op_bitwise_or_pair:
8315// | eq_bitwise_or
8316// | noteq_bitwise_or
8317// | lte_bitwise_or
8318// | lt_bitwise_or
8319// | gte_bitwise_or
8320// | gt_bitwise_or
8321// | notin_bitwise_or
8322// | in_bitwise_or
8323// | isnot_bitwise_or
8324// | is_bitwise_or
8325static CmpopExprPair*
8326compare_op_bitwise_or_pair_rule(Parser *p)
8327{
8328 D(p->level++);
8329 if (p->error_indicator) {
8330 D(p->level--);
8331 return NULL;
8332 }
8333 CmpopExprPair* _res = NULL;
8334 int _mark = p->mark;
8335 { // eq_bitwise_or
8336 if (p->error_indicator) {
8337 D(p->level--);
8338 return NULL;
8339 }
8340 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8341 CmpopExprPair* eq_bitwise_or_var;
8342 if (
8343 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
8344 )
8345 {
8346 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8347 _res = eq_bitwise_or_var;
8348 goto done;
8349 }
8350 p->mark = _mark;
8351 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
8353 }
8354 { // noteq_bitwise_or
8355 if (p->error_indicator) {
8356 D(p->level--);
8357 return NULL;
8358 }
8359 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8360 CmpopExprPair* noteq_bitwise_or_var;
8361 if (
8362 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
8363 )
8364 {
8365 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8366 _res = noteq_bitwise_or_var;
8367 goto done;
8368 }
8369 p->mark = _mark;
8370 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
8372 }
8373 { // lte_bitwise_or
8374 if (p->error_indicator) {
8375 D(p->level--);
8376 return NULL;
8377 }
8378 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8379 CmpopExprPair* lte_bitwise_or_var;
8380 if (
8381 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
8382 )
8383 {
8384 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8385 _res = lte_bitwise_or_var;
8386 goto done;
8387 }
8388 p->mark = _mark;
8389 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
8391 }
8392 { // lt_bitwise_or
8393 if (p->error_indicator) {
8394 D(p->level--);
8395 return NULL;
8396 }
8397 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8398 CmpopExprPair* lt_bitwise_or_var;
8399 if (
8400 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
8401 )
8402 {
8403 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8404 _res = lt_bitwise_or_var;
8405 goto done;
8406 }
8407 p->mark = _mark;
8408 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
8410 }
8411 { // gte_bitwise_or
8412 if (p->error_indicator) {
8413 D(p->level--);
8414 return NULL;
8415 }
8416 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8417 CmpopExprPair* gte_bitwise_or_var;
8418 if (
8419 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
8420 )
8421 {
8422 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8423 _res = gte_bitwise_or_var;
8424 goto done;
8425 }
8426 p->mark = _mark;
8427 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
8429 }
8430 { // gt_bitwise_or
8431 if (p->error_indicator) {
8432 D(p->level--);
8433 return NULL;
8434 }
8435 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8436 CmpopExprPair* gt_bitwise_or_var;
8437 if (
8438 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
8439 )
8440 {
8441 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8442 _res = gt_bitwise_or_var;
8443 goto done;
8444 }
8445 p->mark = _mark;
8446 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
8448 }
8449 { // notin_bitwise_or
8450 if (p->error_indicator) {
8451 D(p->level--);
8452 return NULL;
8453 }
8454 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8455 CmpopExprPair* notin_bitwise_or_var;
8456 if (
8457 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
8458 )
8459 {
8460 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8461 _res = notin_bitwise_or_var;
8462 goto done;
8463 }
8464 p->mark = _mark;
8465 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
8467 }
8468 { // in_bitwise_or
8469 if (p->error_indicator) {
8470 D(p->level--);
8471 return NULL;
8472 }
8473 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8474 CmpopExprPair* in_bitwise_or_var;
8475 if (
8476 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
8477 )
8478 {
8479 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8480 _res = in_bitwise_or_var;
8481 goto done;
8482 }
8483 p->mark = _mark;
8484 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
8486 }
8487 { // isnot_bitwise_or
8488 if (p->error_indicator) {
8489 D(p->level--);
8490 return NULL;
8491 }
8492 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8493 CmpopExprPair* isnot_bitwise_or_var;
8494 if (
8495 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
8496 )
8497 {
8498 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8499 _res = isnot_bitwise_or_var;
8500 goto done;
8501 }
8502 p->mark = _mark;
8503 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
8505 }
8506 { // is_bitwise_or
8507 if (p->error_indicator) {
8508 D(p->level--);
8509 return NULL;
8510 }
8511 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8512 CmpopExprPair* is_bitwise_or_var;
8513 if (
8514 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
8515 )
8516 {
8517 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8518 _res = is_bitwise_or_var;
8519 goto done;
8520 }
8521 p->mark = _mark;
8522 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
8524 }
8525 _res = NULL;
8526 done:
8527 D(p->level--);
8528 return _res;
8529}
8530
8531// eq_bitwise_or: '==' bitwise_or
8532static CmpopExprPair*
8533eq_bitwise_or_rule(Parser *p)
8534{
8535 D(p->level++);
8536 if (p->error_indicator) {
8537 D(p->level--);
8538 return NULL;
8539 }
8540 CmpopExprPair* _res = NULL;
8541 int _mark = p->mark;
8542 { // '==' bitwise_or
8543 if (p->error_indicator) {
8544 D(p->level--);
8545 return NULL;
8546 }
8547 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8548 Token * _literal;
8549 expr_ty a;
8550 if (
8551 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
8552 &&
8553 (a = bitwise_or_rule(p)) // bitwise_or
8554 )
8555 {
8556 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8557 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8558 if (_res == NULL && PyErr_Occurred()) {
8559 p->error_indicator = 1;
8560 D(p->level--);
8561 return NULL;
8562 }
8563 goto done;
8564 }
8565 p->mark = _mark;
8566 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
8568 }
8569 _res = NULL;
8570 done:
8571 D(p->level--);
8572 return _res;
8573}
8574
8575// noteq_bitwise_or: ('!=') bitwise_or
8576static CmpopExprPair*
8577noteq_bitwise_or_rule(Parser *p)
8578{
8579 D(p->level++);
8580 if (p->error_indicator) {
8581 D(p->level--);
8582 return NULL;
8583 }
8584 CmpopExprPair* _res = NULL;
8585 int _mark = p->mark;
8586 { // ('!=') bitwise_or
8587 if (p->error_indicator) {
8588 D(p->level--);
8589 return NULL;
8590 }
8591 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 +00008592 void *_tmp_91_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008593 expr_ty a;
8594 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008595 (_tmp_91_var = _tmp_91_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008596 &&
8597 (a = bitwise_or_rule(p)) // bitwise_or
8598 )
8599 {
8600 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
8601 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8602 if (_res == NULL && PyErr_Occurred()) {
8603 p->error_indicator = 1;
8604 D(p->level--);
8605 return NULL;
8606 }
8607 goto done;
8608 }
8609 p->mark = _mark;
8610 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
8612 }
8613 _res = NULL;
8614 done:
8615 D(p->level--);
8616 return _res;
8617}
8618
8619// lte_bitwise_or: '<=' bitwise_or
8620static CmpopExprPair*
8621lte_bitwise_or_rule(Parser *p)
8622{
8623 D(p->level++);
8624 if (p->error_indicator) {
8625 D(p->level--);
8626 return NULL;
8627 }
8628 CmpopExprPair* _res = NULL;
8629 int _mark = p->mark;
8630 { // '<=' bitwise_or
8631 if (p->error_indicator) {
8632 D(p->level--);
8633 return NULL;
8634 }
8635 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8636 Token * _literal;
8637 expr_ty a;
8638 if (
8639 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
8640 &&
8641 (a = bitwise_or_rule(p)) // bitwise_or
8642 )
8643 {
8644 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8645 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8646 if (_res == NULL && PyErr_Occurred()) {
8647 p->error_indicator = 1;
8648 D(p->level--);
8649 return NULL;
8650 }
8651 goto done;
8652 }
8653 p->mark = _mark;
8654 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
8656 }
8657 _res = NULL;
8658 done:
8659 D(p->level--);
8660 return _res;
8661}
8662
8663// lt_bitwise_or: '<' bitwise_or
8664static CmpopExprPair*
8665lt_bitwise_or_rule(Parser *p)
8666{
8667 D(p->level++);
8668 if (p->error_indicator) {
8669 D(p->level--);
8670 return NULL;
8671 }
8672 CmpopExprPair* _res = NULL;
8673 int _mark = p->mark;
8674 { // '<' bitwise_or
8675 if (p->error_indicator) {
8676 D(p->level--);
8677 return NULL;
8678 }
8679 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8680 Token * _literal;
8681 expr_ty a;
8682 if (
8683 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
8684 &&
8685 (a = bitwise_or_rule(p)) // bitwise_or
8686 )
8687 {
8688 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8689 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8690 if (_res == NULL && PyErr_Occurred()) {
8691 p->error_indicator = 1;
8692 D(p->level--);
8693 return NULL;
8694 }
8695 goto done;
8696 }
8697 p->mark = _mark;
8698 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
8700 }
8701 _res = NULL;
8702 done:
8703 D(p->level--);
8704 return _res;
8705}
8706
8707// gte_bitwise_or: '>=' bitwise_or
8708static CmpopExprPair*
8709gte_bitwise_or_rule(Parser *p)
8710{
8711 D(p->level++);
8712 if (p->error_indicator) {
8713 D(p->level--);
8714 return NULL;
8715 }
8716 CmpopExprPair* _res = NULL;
8717 int _mark = p->mark;
8718 { // '>=' bitwise_or
8719 if (p->error_indicator) {
8720 D(p->level--);
8721 return NULL;
8722 }
8723 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8724 Token * _literal;
8725 expr_ty a;
8726 if (
8727 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
8728 &&
8729 (a = bitwise_or_rule(p)) // bitwise_or
8730 )
8731 {
8732 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8733 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8734 if (_res == NULL && PyErr_Occurred()) {
8735 p->error_indicator = 1;
8736 D(p->level--);
8737 return NULL;
8738 }
8739 goto done;
8740 }
8741 p->mark = _mark;
8742 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
8744 }
8745 _res = NULL;
8746 done:
8747 D(p->level--);
8748 return _res;
8749}
8750
8751// gt_bitwise_or: '>' bitwise_or
8752static CmpopExprPair*
8753gt_bitwise_or_rule(Parser *p)
8754{
8755 D(p->level++);
8756 if (p->error_indicator) {
8757 D(p->level--);
8758 return NULL;
8759 }
8760 CmpopExprPair* _res = NULL;
8761 int _mark = p->mark;
8762 { // '>' bitwise_or
8763 if (p->error_indicator) {
8764 D(p->level--);
8765 return NULL;
8766 }
8767 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8768 Token * _literal;
8769 expr_ty a;
8770 if (
8771 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
8772 &&
8773 (a = bitwise_or_rule(p)) // bitwise_or
8774 )
8775 {
8776 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8777 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8778 if (_res == NULL && PyErr_Occurred()) {
8779 p->error_indicator = 1;
8780 D(p->level--);
8781 return NULL;
8782 }
8783 goto done;
8784 }
8785 p->mark = _mark;
8786 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
8788 }
8789 _res = NULL;
8790 done:
8791 D(p->level--);
8792 return _res;
8793}
8794
8795// notin_bitwise_or: 'not' 'in' bitwise_or
8796static CmpopExprPair*
8797notin_bitwise_or_rule(Parser *p)
8798{
8799 D(p->level++);
8800 if (p->error_indicator) {
8801 D(p->level--);
8802 return NULL;
8803 }
8804 CmpopExprPair* _res = NULL;
8805 int _mark = p->mark;
8806 { // 'not' 'in' bitwise_or
8807 if (p->error_indicator) {
8808 D(p->level--);
8809 return NULL;
8810 }
8811 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8812 Token * _keyword;
8813 Token * _keyword_1;
8814 expr_ty a;
8815 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008816 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008817 &&
8818 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
8819 &&
8820 (a = bitwise_or_rule(p)) // bitwise_or
8821 )
8822 {
8823 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8824 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8825 if (_res == NULL && PyErr_Occurred()) {
8826 p->error_indicator = 1;
8827 D(p->level--);
8828 return NULL;
8829 }
8830 goto done;
8831 }
8832 p->mark = _mark;
8833 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
8835 }
8836 _res = NULL;
8837 done:
8838 D(p->level--);
8839 return _res;
8840}
8841
8842// in_bitwise_or: 'in' bitwise_or
8843static CmpopExprPair*
8844in_bitwise_or_rule(Parser *p)
8845{
8846 D(p->level++);
8847 if (p->error_indicator) {
8848 D(p->level--);
8849 return NULL;
8850 }
8851 CmpopExprPair* _res = NULL;
8852 int _mark = p->mark;
8853 { // 'in' bitwise_or
8854 if (p->error_indicator) {
8855 D(p->level--);
8856 return NULL;
8857 }
8858 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8859 Token * _keyword;
8860 expr_ty a;
8861 if (
8862 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
8863 &&
8864 (a = bitwise_or_rule(p)) // bitwise_or
8865 )
8866 {
8867 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8868 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8869 if (_res == NULL && PyErr_Occurred()) {
8870 p->error_indicator = 1;
8871 D(p->level--);
8872 return NULL;
8873 }
8874 goto done;
8875 }
8876 p->mark = _mark;
8877 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
8879 }
8880 _res = NULL;
8881 done:
8882 D(p->level--);
8883 return _res;
8884}
8885
8886// isnot_bitwise_or: 'is' 'not' bitwise_or
8887static CmpopExprPair*
8888isnot_bitwise_or_rule(Parser *p)
8889{
8890 D(p->level++);
8891 if (p->error_indicator) {
8892 D(p->level--);
8893 return NULL;
8894 }
8895 CmpopExprPair* _res = NULL;
8896 int _mark = p->mark;
8897 { // 'is' 'not' bitwise_or
8898 if (p->error_indicator) {
8899 D(p->level--);
8900 return NULL;
8901 }
8902 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8903 Token * _keyword;
8904 Token * _keyword_1;
8905 expr_ty a;
8906 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008907 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008908 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008909 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008910 &&
8911 (a = bitwise_or_rule(p)) // bitwise_or
8912 )
8913 {
8914 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8915 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8916 if (_res == NULL && PyErr_Occurred()) {
8917 p->error_indicator = 1;
8918 D(p->level--);
8919 return NULL;
8920 }
8921 goto done;
8922 }
8923 p->mark = _mark;
8924 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
8926 }
8927 _res = NULL;
8928 done:
8929 D(p->level--);
8930 return _res;
8931}
8932
8933// is_bitwise_or: 'is' bitwise_or
8934static CmpopExprPair*
8935is_bitwise_or_rule(Parser *p)
8936{
8937 D(p->level++);
8938 if (p->error_indicator) {
8939 D(p->level--);
8940 return NULL;
8941 }
8942 CmpopExprPair* _res = NULL;
8943 int _mark = p->mark;
8944 { // 'is' bitwise_or
8945 if (p->error_indicator) {
8946 D(p->level--);
8947 return NULL;
8948 }
8949 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
8950 Token * _keyword;
8951 expr_ty a;
8952 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008953 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008954 &&
8955 (a = bitwise_or_rule(p)) // bitwise_or
8956 )
8957 {
8958 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
8959 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
8960 if (_res == NULL && PyErr_Occurred()) {
8961 p->error_indicator = 1;
8962 D(p->level--);
8963 return NULL;
8964 }
8965 goto done;
8966 }
8967 p->mark = _mark;
8968 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
8970 }
8971 _res = NULL;
8972 done:
8973 D(p->level--);
8974 return _res;
8975}
8976
8977// Left-recursive
8978// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
8979static expr_ty bitwise_or_raw(Parser *);
8980static expr_ty
8981bitwise_or_rule(Parser *p)
8982{
8983 D(p->level++);
8984 expr_ty _res = NULL;
8985 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
8986 D(p->level--);
8987 return _res;
8988 }
8989 int _mark = p->mark;
8990 int _resmark = p->mark;
8991 while (1) {
8992 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
8993 if (tmpvar_1) {
8994 D(p->level--);
8995 return _res;
8996 }
8997 p->mark = _mark;
8998 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02008999 if (p->error_indicator)
9000 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009001 if (_raw == NULL || p->mark <= _resmark)
9002 break;
9003 _resmark = p->mark;
9004 _res = _raw;
9005 }
9006 p->mark = _resmark;
9007 D(p->level--);
9008 return _res;
9009}
9010static expr_ty
9011bitwise_or_raw(Parser *p)
9012{
9013 D(p->level++);
9014 if (p->error_indicator) {
9015 D(p->level--);
9016 return NULL;
9017 }
9018 expr_ty _res = NULL;
9019 int _mark = p->mark;
9020 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9021 p->error_indicator = 1;
9022 D(p->level--);
9023 return NULL;
9024 }
9025 int _start_lineno = p->tokens[_mark]->lineno;
9026 UNUSED(_start_lineno); // Only used by EXTRA macro
9027 int _start_col_offset = p->tokens[_mark]->col_offset;
9028 UNUSED(_start_col_offset); // Only used by EXTRA macro
9029 { // bitwise_or '|' bitwise_xor
9030 if (p->error_indicator) {
9031 D(p->level--);
9032 return NULL;
9033 }
9034 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9035 Token * _literal;
9036 expr_ty a;
9037 expr_ty b;
9038 if (
9039 (a = bitwise_or_rule(p)) // bitwise_or
9040 &&
9041 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
9042 &&
9043 (b = bitwise_xor_rule(p)) // bitwise_xor
9044 )
9045 {
9046 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9047 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9048 if (_token == NULL) {
9049 D(p->level--);
9050 return NULL;
9051 }
9052 int _end_lineno = _token->end_lineno;
9053 UNUSED(_end_lineno); // Only used by EXTRA macro
9054 int _end_col_offset = _token->end_col_offset;
9055 UNUSED(_end_col_offset); // Only used by EXTRA macro
9056 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9057 if (_res == NULL && PyErr_Occurred()) {
9058 p->error_indicator = 1;
9059 D(p->level--);
9060 return NULL;
9061 }
9062 goto done;
9063 }
9064 p->mark = _mark;
9065 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9067 }
9068 { // bitwise_xor
9069 if (p->error_indicator) {
9070 D(p->level--);
9071 return NULL;
9072 }
9073 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9074 expr_ty bitwise_xor_var;
9075 if (
9076 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
9077 )
9078 {
9079 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9080 _res = bitwise_xor_var;
9081 goto done;
9082 }
9083 p->mark = _mark;
9084 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
9086 }
9087 _res = NULL;
9088 done:
9089 D(p->level--);
9090 return _res;
9091}
9092
9093// Left-recursive
9094// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9095static expr_ty bitwise_xor_raw(Parser *);
9096static expr_ty
9097bitwise_xor_rule(Parser *p)
9098{
9099 D(p->level++);
9100 expr_ty _res = NULL;
9101 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9102 D(p->level--);
9103 return _res;
9104 }
9105 int _mark = p->mark;
9106 int _resmark = p->mark;
9107 while (1) {
9108 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
9109 if (tmpvar_2) {
9110 D(p->level--);
9111 return _res;
9112 }
9113 p->mark = _mark;
9114 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009115 if (p->error_indicator)
9116 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009117 if (_raw == NULL || p->mark <= _resmark)
9118 break;
9119 _resmark = p->mark;
9120 _res = _raw;
9121 }
9122 p->mark = _resmark;
9123 D(p->level--);
9124 return _res;
9125}
9126static expr_ty
9127bitwise_xor_raw(Parser *p)
9128{
9129 D(p->level++);
9130 if (p->error_indicator) {
9131 D(p->level--);
9132 return NULL;
9133 }
9134 expr_ty _res = NULL;
9135 int _mark = p->mark;
9136 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9137 p->error_indicator = 1;
9138 D(p->level--);
9139 return NULL;
9140 }
9141 int _start_lineno = p->tokens[_mark]->lineno;
9142 UNUSED(_start_lineno); // Only used by EXTRA macro
9143 int _start_col_offset = p->tokens[_mark]->col_offset;
9144 UNUSED(_start_col_offset); // Only used by EXTRA macro
9145 { // bitwise_xor '^' bitwise_and
9146 if (p->error_indicator) {
9147 D(p->level--);
9148 return NULL;
9149 }
9150 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9151 Token * _literal;
9152 expr_ty a;
9153 expr_ty b;
9154 if (
9155 (a = bitwise_xor_rule(p)) // bitwise_xor
9156 &&
9157 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
9158 &&
9159 (b = bitwise_and_rule(p)) // bitwise_and
9160 )
9161 {
9162 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9163 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9164 if (_token == NULL) {
9165 D(p->level--);
9166 return NULL;
9167 }
9168 int _end_lineno = _token->end_lineno;
9169 UNUSED(_end_lineno); // Only used by EXTRA macro
9170 int _end_col_offset = _token->end_col_offset;
9171 UNUSED(_end_col_offset); // Only used by EXTRA macro
9172 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9173 if (_res == NULL && PyErr_Occurred()) {
9174 p->error_indicator = 1;
9175 D(p->level--);
9176 return NULL;
9177 }
9178 goto done;
9179 }
9180 p->mark = _mark;
9181 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9183 }
9184 { // bitwise_and
9185 if (p->error_indicator) {
9186 D(p->level--);
9187 return NULL;
9188 }
9189 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9190 expr_ty bitwise_and_var;
9191 if (
9192 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
9193 )
9194 {
9195 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9196 _res = bitwise_and_var;
9197 goto done;
9198 }
9199 p->mark = _mark;
9200 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
9202 }
9203 _res = NULL;
9204 done:
9205 D(p->level--);
9206 return _res;
9207}
9208
9209// Left-recursive
9210// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9211static expr_ty bitwise_and_raw(Parser *);
9212static expr_ty
9213bitwise_and_rule(Parser *p)
9214{
9215 D(p->level++);
9216 expr_ty _res = NULL;
9217 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9218 D(p->level--);
9219 return _res;
9220 }
9221 int _mark = p->mark;
9222 int _resmark = p->mark;
9223 while (1) {
9224 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
9225 if (tmpvar_3) {
9226 D(p->level--);
9227 return _res;
9228 }
9229 p->mark = _mark;
9230 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009231 if (p->error_indicator)
9232 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009233 if (_raw == NULL || p->mark <= _resmark)
9234 break;
9235 _resmark = p->mark;
9236 _res = _raw;
9237 }
9238 p->mark = _resmark;
9239 D(p->level--);
9240 return _res;
9241}
9242static expr_ty
9243bitwise_and_raw(Parser *p)
9244{
9245 D(p->level++);
9246 if (p->error_indicator) {
9247 D(p->level--);
9248 return NULL;
9249 }
9250 expr_ty _res = NULL;
9251 int _mark = p->mark;
9252 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9253 p->error_indicator = 1;
9254 D(p->level--);
9255 return NULL;
9256 }
9257 int _start_lineno = p->tokens[_mark]->lineno;
9258 UNUSED(_start_lineno); // Only used by EXTRA macro
9259 int _start_col_offset = p->tokens[_mark]->col_offset;
9260 UNUSED(_start_col_offset); // Only used by EXTRA macro
9261 { // bitwise_and '&' shift_expr
9262 if (p->error_indicator) {
9263 D(p->level--);
9264 return NULL;
9265 }
9266 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9267 Token * _literal;
9268 expr_ty a;
9269 expr_ty b;
9270 if (
9271 (a = bitwise_and_rule(p)) // bitwise_and
9272 &&
9273 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
9274 &&
9275 (b = shift_expr_rule(p)) // shift_expr
9276 )
9277 {
9278 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9279 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9280 if (_token == NULL) {
9281 D(p->level--);
9282 return NULL;
9283 }
9284 int _end_lineno = _token->end_lineno;
9285 UNUSED(_end_lineno); // Only used by EXTRA macro
9286 int _end_col_offset = _token->end_col_offset;
9287 UNUSED(_end_col_offset); // Only used by EXTRA macro
9288 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9289 if (_res == NULL && PyErr_Occurred()) {
9290 p->error_indicator = 1;
9291 D(p->level--);
9292 return NULL;
9293 }
9294 goto done;
9295 }
9296 p->mark = _mark;
9297 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
9299 }
9300 { // shift_expr
9301 if (p->error_indicator) {
9302 D(p->level--);
9303 return NULL;
9304 }
9305 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9306 expr_ty shift_expr_var;
9307 if (
9308 (shift_expr_var = shift_expr_rule(p)) // shift_expr
9309 )
9310 {
9311 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9312 _res = shift_expr_var;
9313 goto done;
9314 }
9315 p->mark = _mark;
9316 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
9318 }
9319 _res = NULL;
9320 done:
9321 D(p->level--);
9322 return _res;
9323}
9324
9325// Left-recursive
9326// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9327static expr_ty shift_expr_raw(Parser *);
9328static expr_ty
9329shift_expr_rule(Parser *p)
9330{
9331 D(p->level++);
9332 expr_ty _res = NULL;
9333 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9334 D(p->level--);
9335 return _res;
9336 }
9337 int _mark = p->mark;
9338 int _resmark = p->mark;
9339 while (1) {
9340 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
9341 if (tmpvar_4) {
9342 D(p->level--);
9343 return _res;
9344 }
9345 p->mark = _mark;
9346 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009347 if (p->error_indicator)
9348 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009349 if (_raw == NULL || p->mark <= _resmark)
9350 break;
9351 _resmark = p->mark;
9352 _res = _raw;
9353 }
9354 p->mark = _resmark;
9355 D(p->level--);
9356 return _res;
9357}
9358static expr_ty
9359shift_expr_raw(Parser *p)
9360{
9361 D(p->level++);
9362 if (p->error_indicator) {
9363 D(p->level--);
9364 return NULL;
9365 }
9366 expr_ty _res = NULL;
9367 int _mark = p->mark;
9368 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9369 p->error_indicator = 1;
9370 D(p->level--);
9371 return NULL;
9372 }
9373 int _start_lineno = p->tokens[_mark]->lineno;
9374 UNUSED(_start_lineno); // Only used by EXTRA macro
9375 int _start_col_offset = p->tokens[_mark]->col_offset;
9376 UNUSED(_start_col_offset); // Only used by EXTRA macro
9377 { // shift_expr '<<' sum
9378 if (p->error_indicator) {
9379 D(p->level--);
9380 return NULL;
9381 }
9382 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9383 Token * _literal;
9384 expr_ty a;
9385 expr_ty b;
9386 if (
9387 (a = shift_expr_rule(p)) // shift_expr
9388 &&
9389 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
9390 &&
9391 (b = sum_rule(p)) // sum
9392 )
9393 {
9394 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9395 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9396 if (_token == NULL) {
9397 D(p->level--);
9398 return NULL;
9399 }
9400 int _end_lineno = _token->end_lineno;
9401 UNUSED(_end_lineno); // Only used by EXTRA macro
9402 int _end_col_offset = _token->end_col_offset;
9403 UNUSED(_end_col_offset); // Only used by EXTRA macro
9404 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9405 if (_res == NULL && PyErr_Occurred()) {
9406 p->error_indicator = 1;
9407 D(p->level--);
9408 return NULL;
9409 }
9410 goto done;
9411 }
9412 p->mark = _mark;
9413 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
9415 }
9416 { // shift_expr '>>' sum
9417 if (p->error_indicator) {
9418 D(p->level--);
9419 return NULL;
9420 }
9421 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9422 Token * _literal;
9423 expr_ty a;
9424 expr_ty b;
9425 if (
9426 (a = shift_expr_rule(p)) // shift_expr
9427 &&
9428 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
9429 &&
9430 (b = sum_rule(p)) // sum
9431 )
9432 {
9433 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9434 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9435 if (_token == NULL) {
9436 D(p->level--);
9437 return NULL;
9438 }
9439 int _end_lineno = _token->end_lineno;
9440 UNUSED(_end_lineno); // Only used by EXTRA macro
9441 int _end_col_offset = _token->end_col_offset;
9442 UNUSED(_end_col_offset); // Only used by EXTRA macro
9443 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9444 if (_res == NULL && PyErr_Occurred()) {
9445 p->error_indicator = 1;
9446 D(p->level--);
9447 return NULL;
9448 }
9449 goto done;
9450 }
9451 p->mark = _mark;
9452 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
9454 }
9455 { // sum
9456 if (p->error_indicator) {
9457 D(p->level--);
9458 return NULL;
9459 }
9460 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
9461 expr_ty sum_var;
9462 if (
9463 (sum_var = sum_rule(p)) // sum
9464 )
9465 {
9466 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
9467 _res = sum_var;
9468 goto done;
9469 }
9470 p->mark = _mark;
9471 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
9473 }
9474 _res = NULL;
9475 done:
9476 D(p->level--);
9477 return _res;
9478}
9479
9480// Left-recursive
9481// sum: sum '+' term | sum '-' term | term
9482static expr_ty sum_raw(Parser *);
9483static expr_ty
9484sum_rule(Parser *p)
9485{
9486 D(p->level++);
9487 expr_ty _res = NULL;
9488 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9489 D(p->level--);
9490 return _res;
9491 }
9492 int _mark = p->mark;
9493 int _resmark = p->mark;
9494 while (1) {
9495 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
9496 if (tmpvar_5) {
9497 D(p->level--);
9498 return _res;
9499 }
9500 p->mark = _mark;
9501 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009502 if (p->error_indicator)
9503 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009504 if (_raw == NULL || p->mark <= _resmark)
9505 break;
9506 _resmark = p->mark;
9507 _res = _raw;
9508 }
9509 p->mark = _resmark;
9510 D(p->level--);
9511 return _res;
9512}
9513static expr_ty
9514sum_raw(Parser *p)
9515{
9516 D(p->level++);
9517 if (p->error_indicator) {
9518 D(p->level--);
9519 return NULL;
9520 }
9521 expr_ty _res = NULL;
9522 int _mark = p->mark;
9523 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9524 p->error_indicator = 1;
9525 D(p->level--);
9526 return NULL;
9527 }
9528 int _start_lineno = p->tokens[_mark]->lineno;
9529 UNUSED(_start_lineno); // Only used by EXTRA macro
9530 int _start_col_offset = p->tokens[_mark]->col_offset;
9531 UNUSED(_start_col_offset); // Only used by EXTRA macro
9532 { // sum '+' term
9533 if (p->error_indicator) {
9534 D(p->level--);
9535 return NULL;
9536 }
9537 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9538 Token * _literal;
9539 expr_ty a;
9540 expr_ty b;
9541 if (
9542 (a = sum_rule(p)) // sum
9543 &&
9544 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9545 &&
9546 (b = term_rule(p)) // term
9547 )
9548 {
9549 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9550 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9551 if (_token == NULL) {
9552 D(p->level--);
9553 return NULL;
9554 }
9555 int _end_lineno = _token->end_lineno;
9556 UNUSED(_end_lineno); // Only used by EXTRA macro
9557 int _end_col_offset = _token->end_col_offset;
9558 UNUSED(_end_col_offset); // Only used by EXTRA macro
9559 _res = _Py_BinOp ( a , Add , b , EXTRA );
9560 if (_res == NULL && PyErr_Occurred()) {
9561 p->error_indicator = 1;
9562 D(p->level--);
9563 return NULL;
9564 }
9565 goto done;
9566 }
9567 p->mark = _mark;
9568 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
9570 }
9571 { // sum '-' term
9572 if (p->error_indicator) {
9573 D(p->level--);
9574 return NULL;
9575 }
9576 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9577 Token * _literal;
9578 expr_ty a;
9579 expr_ty b;
9580 if (
9581 (a = sum_rule(p)) // sum
9582 &&
9583 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
9584 &&
9585 (b = term_rule(p)) // term
9586 )
9587 {
9588 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9589 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9590 if (_token == NULL) {
9591 D(p->level--);
9592 return NULL;
9593 }
9594 int _end_lineno = _token->end_lineno;
9595 UNUSED(_end_lineno); // Only used by EXTRA macro
9596 int _end_col_offset = _token->end_col_offset;
9597 UNUSED(_end_col_offset); // Only used by EXTRA macro
9598 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9599 if (_res == NULL && PyErr_Occurred()) {
9600 p->error_indicator = 1;
9601 D(p->level--);
9602 return NULL;
9603 }
9604 goto done;
9605 }
9606 p->mark = _mark;
9607 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
9609 }
9610 { // term
9611 if (p->error_indicator) {
9612 D(p->level--);
9613 return NULL;
9614 }
9615 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
9616 expr_ty term_var;
9617 if (
9618 (term_var = term_rule(p)) // term
9619 )
9620 {
9621 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
9622 _res = term_var;
9623 goto done;
9624 }
9625 p->mark = _mark;
9626 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
9628 }
9629 _res = NULL;
9630 done:
9631 D(p->level--);
9632 return _res;
9633}
9634
9635// Left-recursive
9636// term:
9637// | term '*' factor
9638// | term '/' factor
9639// | term '//' factor
9640// | term '%' factor
9641// | term '@' factor
9642// | factor
9643static expr_ty term_raw(Parser *);
9644static expr_ty
9645term_rule(Parser *p)
9646{
9647 D(p->level++);
9648 expr_ty _res = NULL;
9649 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9650 D(p->level--);
9651 return _res;
9652 }
9653 int _mark = p->mark;
9654 int _resmark = p->mark;
9655 while (1) {
9656 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
9657 if (tmpvar_6) {
9658 D(p->level--);
9659 return _res;
9660 }
9661 p->mark = _mark;
9662 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009663 if (p->error_indicator)
9664 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009665 if (_raw == NULL || p->mark <= _resmark)
9666 break;
9667 _resmark = p->mark;
9668 _res = _raw;
9669 }
9670 p->mark = _resmark;
9671 D(p->level--);
9672 return _res;
9673}
9674static expr_ty
9675term_raw(Parser *p)
9676{
9677 D(p->level++);
9678 if (p->error_indicator) {
9679 D(p->level--);
9680 return NULL;
9681 }
9682 expr_ty _res = NULL;
9683 int _mark = p->mark;
9684 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9685 p->error_indicator = 1;
9686 D(p->level--);
9687 return NULL;
9688 }
9689 int _start_lineno = p->tokens[_mark]->lineno;
9690 UNUSED(_start_lineno); // Only used by EXTRA macro
9691 int _start_col_offset = p->tokens[_mark]->col_offset;
9692 UNUSED(_start_col_offset); // Only used by EXTRA macro
9693 { // term '*' factor
9694 if (p->error_indicator) {
9695 D(p->level--);
9696 return NULL;
9697 }
9698 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9699 Token * _literal;
9700 expr_ty a;
9701 expr_ty b;
9702 if (
9703 (a = term_rule(p)) // term
9704 &&
9705 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9706 &&
9707 (b = factor_rule(p)) // factor
9708 )
9709 {
9710 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9711 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9712 if (_token == NULL) {
9713 D(p->level--);
9714 return NULL;
9715 }
9716 int _end_lineno = _token->end_lineno;
9717 UNUSED(_end_lineno); // Only used by EXTRA macro
9718 int _end_col_offset = _token->end_col_offset;
9719 UNUSED(_end_col_offset); // Only used by EXTRA macro
9720 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9721 if (_res == NULL && PyErr_Occurred()) {
9722 p->error_indicator = 1;
9723 D(p->level--);
9724 return NULL;
9725 }
9726 goto done;
9727 }
9728 p->mark = _mark;
9729 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
9731 }
9732 { // term '/' factor
9733 if (p->error_indicator) {
9734 D(p->level--);
9735 return NULL;
9736 }
9737 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9738 Token * _literal;
9739 expr_ty a;
9740 expr_ty b;
9741 if (
9742 (a = term_rule(p)) // term
9743 &&
9744 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9745 &&
9746 (b = factor_rule(p)) // factor
9747 )
9748 {
9749 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9750 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9751 if (_token == NULL) {
9752 D(p->level--);
9753 return NULL;
9754 }
9755 int _end_lineno = _token->end_lineno;
9756 UNUSED(_end_lineno); // Only used by EXTRA macro
9757 int _end_col_offset = _token->end_col_offset;
9758 UNUSED(_end_col_offset); // Only used by EXTRA macro
9759 _res = _Py_BinOp ( a , Div , b , EXTRA );
9760 if (_res == NULL && PyErr_Occurred()) {
9761 p->error_indicator = 1;
9762 D(p->level--);
9763 return NULL;
9764 }
9765 goto done;
9766 }
9767 p->mark = _mark;
9768 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
9770 }
9771 { // term '//' factor
9772 if (p->error_indicator) {
9773 D(p->level--);
9774 return NULL;
9775 }
9776 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9777 Token * _literal;
9778 expr_ty a;
9779 expr_ty b;
9780 if (
9781 (a = term_rule(p)) // term
9782 &&
9783 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
9784 &&
9785 (b = factor_rule(p)) // factor
9786 )
9787 {
9788 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9789 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9790 if (_token == NULL) {
9791 D(p->level--);
9792 return NULL;
9793 }
9794 int _end_lineno = _token->end_lineno;
9795 UNUSED(_end_lineno); // Only used by EXTRA macro
9796 int _end_col_offset = _token->end_col_offset;
9797 UNUSED(_end_col_offset); // Only used by EXTRA macro
9798 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9799 if (_res == NULL && PyErr_Occurred()) {
9800 p->error_indicator = 1;
9801 D(p->level--);
9802 return NULL;
9803 }
9804 goto done;
9805 }
9806 p->mark = _mark;
9807 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
9809 }
9810 { // term '%' factor
9811 if (p->error_indicator) {
9812 D(p->level--);
9813 return NULL;
9814 }
9815 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9816 Token * _literal;
9817 expr_ty a;
9818 expr_ty b;
9819 if (
9820 (a = term_rule(p)) // term
9821 &&
9822 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
9823 &&
9824 (b = factor_rule(p)) // factor
9825 )
9826 {
9827 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9828 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9829 if (_token == NULL) {
9830 D(p->level--);
9831 return NULL;
9832 }
9833 int _end_lineno = _token->end_lineno;
9834 UNUSED(_end_lineno); // Only used by EXTRA macro
9835 int _end_col_offset = _token->end_col_offset;
9836 UNUSED(_end_col_offset); // Only used by EXTRA macro
9837 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9838 if (_res == NULL && PyErr_Occurred()) {
9839 p->error_indicator = 1;
9840 D(p->level--);
9841 return NULL;
9842 }
9843 goto done;
9844 }
9845 p->mark = _mark;
9846 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
9848 }
9849 { // term '@' factor
9850 if (p->error_indicator) {
9851 D(p->level--);
9852 return NULL;
9853 }
9854 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9855 Token * _literal;
9856 expr_ty a;
9857 expr_ty b;
9858 if (
9859 (a = term_rule(p)) // term
9860 &&
9861 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
9862 &&
9863 (b = factor_rule(p)) // factor
9864 )
9865 {
9866 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9867 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9868 if (_token == NULL) {
9869 D(p->level--);
9870 return NULL;
9871 }
9872 int _end_lineno = _token->end_lineno;
9873 UNUSED(_end_lineno); // Only used by EXTRA macro
9874 int _end_col_offset = _token->end_col_offset;
9875 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009876 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009877 if (_res == NULL && PyErr_Occurred()) {
9878 p->error_indicator = 1;
9879 D(p->level--);
9880 return NULL;
9881 }
9882 goto done;
9883 }
9884 p->mark = _mark;
9885 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
9887 }
9888 { // factor
9889 if (p->error_indicator) {
9890 D(p->level--);
9891 return NULL;
9892 }
9893 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
9894 expr_ty factor_var;
9895 if (
9896 (factor_var = factor_rule(p)) // factor
9897 )
9898 {
9899 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
9900 _res = factor_var;
9901 goto done;
9902 }
9903 p->mark = _mark;
9904 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
9906 }
9907 _res = NULL;
9908 done:
9909 D(p->level--);
9910 return _res;
9911}
9912
9913// factor: '+' factor | '-' factor | '~' factor | power
9914static expr_ty
9915factor_rule(Parser *p)
9916{
9917 D(p->level++);
9918 if (p->error_indicator) {
9919 D(p->level--);
9920 return NULL;
9921 }
9922 expr_ty _res = NULL;
9923 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9924 D(p->level--);
9925 return _res;
9926 }
9927 int _mark = p->mark;
9928 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9929 p->error_indicator = 1;
9930 D(p->level--);
9931 return NULL;
9932 }
9933 int _start_lineno = p->tokens[_mark]->lineno;
9934 UNUSED(_start_lineno); // Only used by EXTRA macro
9935 int _start_col_offset = p->tokens[_mark]->col_offset;
9936 UNUSED(_start_col_offset); // Only used by EXTRA macro
9937 { // '+' factor
9938 if (p->error_indicator) {
9939 D(p->level--);
9940 return NULL;
9941 }
9942 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
9943 Token * _literal;
9944 expr_ty a;
9945 if (
9946 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9947 &&
9948 (a = factor_rule(p)) // factor
9949 )
9950 {
9951 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
9952 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9953 if (_token == NULL) {
9954 D(p->level--);
9955 return NULL;
9956 }
9957 int _end_lineno = _token->end_lineno;
9958 UNUSED(_end_lineno); // Only used by EXTRA macro
9959 int _end_col_offset = _token->end_col_offset;
9960 UNUSED(_end_col_offset); // Only used by EXTRA macro
9961 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9962 if (_res == NULL && PyErr_Occurred()) {
9963 p->error_indicator = 1;
9964 D(p->level--);
9965 return NULL;
9966 }
9967 goto done;
9968 }
9969 p->mark = _mark;
9970 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
9972 }
9973 { // '-' factor
9974 if (p->error_indicator) {
9975 D(p->level--);
9976 return NULL;
9977 }
9978 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
9979 Token * _literal;
9980 expr_ty a;
9981 if (
9982 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
9983 &&
9984 (a = factor_rule(p)) // factor
9985 )
9986 {
9987 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
9988 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9989 if (_token == NULL) {
9990 D(p->level--);
9991 return NULL;
9992 }
9993 int _end_lineno = _token->end_lineno;
9994 UNUSED(_end_lineno); // Only used by EXTRA macro
9995 int _end_col_offset = _token->end_col_offset;
9996 UNUSED(_end_col_offset); // Only used by EXTRA macro
9997 _res = _Py_UnaryOp ( USub , a , EXTRA );
9998 if (_res == NULL && PyErr_Occurred()) {
9999 p->error_indicator = 1;
10000 D(p->level--);
10001 return NULL;
10002 }
10003 goto done;
10004 }
10005 p->mark = _mark;
10006 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
10008 }
10009 { // '~' factor
10010 if (p->error_indicator) {
10011 D(p->level--);
10012 return NULL;
10013 }
10014 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10015 Token * _literal;
10016 expr_ty a;
10017 if (
10018 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
10019 &&
10020 (a = factor_rule(p)) // factor
10021 )
10022 {
10023 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10024 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10025 if (_token == NULL) {
10026 D(p->level--);
10027 return NULL;
10028 }
10029 int _end_lineno = _token->end_lineno;
10030 UNUSED(_end_lineno); // Only used by EXTRA macro
10031 int _end_col_offset = _token->end_col_offset;
10032 UNUSED(_end_col_offset); // Only used by EXTRA macro
10033 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10034 if (_res == NULL && PyErr_Occurred()) {
10035 p->error_indicator = 1;
10036 D(p->level--);
10037 return NULL;
10038 }
10039 goto done;
10040 }
10041 p->mark = _mark;
10042 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
10044 }
10045 { // power
10046 if (p->error_indicator) {
10047 D(p->level--);
10048 return NULL;
10049 }
10050 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
10051 expr_ty power_var;
10052 if (
10053 (power_var = power_rule(p)) // power
10054 )
10055 {
10056 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
10057 _res = power_var;
10058 goto done;
10059 }
10060 p->mark = _mark;
10061 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
10063 }
10064 _res = NULL;
10065 done:
10066 _PyPegen_insert_memo(p, _mark, factor_type, _res);
10067 D(p->level--);
10068 return _res;
10069}
10070
10071// power: await_primary '**' factor | await_primary
10072static expr_ty
10073power_rule(Parser *p)
10074{
10075 D(p->level++);
10076 if (p->error_indicator) {
10077 D(p->level--);
10078 return NULL;
10079 }
10080 expr_ty _res = NULL;
10081 int _mark = p->mark;
10082 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10083 p->error_indicator = 1;
10084 D(p->level--);
10085 return NULL;
10086 }
10087 int _start_lineno = p->tokens[_mark]->lineno;
10088 UNUSED(_start_lineno); // Only used by EXTRA macro
10089 int _start_col_offset = p->tokens[_mark]->col_offset;
10090 UNUSED(_start_col_offset); // Only used by EXTRA macro
10091 { // await_primary '**' factor
10092 if (p->error_indicator) {
10093 D(p->level--);
10094 return NULL;
10095 }
10096 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10097 Token * _literal;
10098 expr_ty a;
10099 expr_ty b;
10100 if (
10101 (a = await_primary_rule(p)) // await_primary
10102 &&
10103 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10104 &&
10105 (b = factor_rule(p)) // factor
10106 )
10107 {
10108 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10109 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10110 if (_token == NULL) {
10111 D(p->level--);
10112 return NULL;
10113 }
10114 int _end_lineno = _token->end_lineno;
10115 UNUSED(_end_lineno); // Only used by EXTRA macro
10116 int _end_col_offset = _token->end_col_offset;
10117 UNUSED(_end_col_offset); // Only used by EXTRA macro
10118 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10119 if (_res == NULL && PyErr_Occurred()) {
10120 p->error_indicator = 1;
10121 D(p->level--);
10122 return NULL;
10123 }
10124 goto done;
10125 }
10126 p->mark = _mark;
10127 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
10129 }
10130 { // await_primary
10131 if (p->error_indicator) {
10132 D(p->level--);
10133 return NULL;
10134 }
10135 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
10136 expr_ty await_primary_var;
10137 if (
10138 (await_primary_var = await_primary_rule(p)) // await_primary
10139 )
10140 {
10141 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
10142 _res = await_primary_var;
10143 goto done;
10144 }
10145 p->mark = _mark;
10146 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
10148 }
10149 _res = NULL;
10150 done:
10151 D(p->level--);
10152 return _res;
10153}
10154
10155// await_primary: AWAIT primary | primary
10156static expr_ty
10157await_primary_rule(Parser *p)
10158{
10159 D(p->level++);
10160 if (p->error_indicator) {
10161 D(p->level--);
10162 return NULL;
10163 }
10164 expr_ty _res = NULL;
10165 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10166 D(p->level--);
10167 return _res;
10168 }
10169 int _mark = p->mark;
10170 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10171 p->error_indicator = 1;
10172 D(p->level--);
10173 return NULL;
10174 }
10175 int _start_lineno = p->tokens[_mark]->lineno;
10176 UNUSED(_start_lineno); // Only used by EXTRA macro
10177 int _start_col_offset = p->tokens[_mark]->col_offset;
10178 UNUSED(_start_col_offset); // Only used by EXTRA macro
10179 { // AWAIT primary
10180 if (p->error_indicator) {
10181 D(p->level--);
10182 return NULL;
10183 }
10184 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10185 expr_ty a;
10186 Token * await_var;
10187 if (
10188 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
10189 &&
10190 (a = primary_rule(p)) // primary
10191 )
10192 {
10193 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10194 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10195 if (_token == NULL) {
10196 D(p->level--);
10197 return NULL;
10198 }
10199 int _end_lineno = _token->end_lineno;
10200 UNUSED(_end_lineno); // Only used by EXTRA macro
10201 int _end_col_offset = _token->end_col_offset;
10202 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010203 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010204 if (_res == NULL && PyErr_Occurred()) {
10205 p->error_indicator = 1;
10206 D(p->level--);
10207 return NULL;
10208 }
10209 goto done;
10210 }
10211 p->mark = _mark;
10212 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
10214 }
10215 { // primary
10216 if (p->error_indicator) {
10217 D(p->level--);
10218 return NULL;
10219 }
10220 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
10221 expr_ty primary_var;
10222 if (
10223 (primary_var = primary_rule(p)) // primary
10224 )
10225 {
10226 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
10227 _res = primary_var;
10228 goto done;
10229 }
10230 p->mark = _mark;
10231 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
10233 }
10234 _res = NULL;
10235 done:
10236 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
10237 D(p->level--);
10238 return _res;
10239}
10240
10241// Left-recursive
10242// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010243// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010244// | primary '.' NAME
10245// | primary genexp
10246// | primary '(' arguments? ')'
10247// | primary '[' slices ']'
10248// | atom
10249static expr_ty primary_raw(Parser *);
10250static expr_ty
10251primary_rule(Parser *p)
10252{
10253 D(p->level++);
10254 expr_ty _res = NULL;
10255 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10256 D(p->level--);
10257 return _res;
10258 }
10259 int _mark = p->mark;
10260 int _resmark = p->mark;
10261 while (1) {
10262 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
10263 if (tmpvar_7) {
10264 D(p->level--);
10265 return _res;
10266 }
10267 p->mark = _mark;
10268 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020010269 if (p->error_indicator)
10270 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010271 if (_raw == NULL || p->mark <= _resmark)
10272 break;
10273 _resmark = p->mark;
10274 _res = _raw;
10275 }
10276 p->mark = _resmark;
10277 D(p->level--);
10278 return _res;
10279}
10280static expr_ty
10281primary_raw(Parser *p)
10282{
10283 D(p->level++);
10284 if (p->error_indicator) {
10285 D(p->level--);
10286 return NULL;
10287 }
10288 expr_ty _res = NULL;
10289 int _mark = p->mark;
10290 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10291 p->error_indicator = 1;
10292 D(p->level--);
10293 return NULL;
10294 }
10295 int _start_lineno = p->tokens[_mark]->lineno;
10296 UNUSED(_start_lineno); // Only used by EXTRA macro
10297 int _start_col_offset = p->tokens[_mark]->col_offset;
10298 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010299 if (p->call_invalid_rules) { // invalid_primary
10300 if (p->error_indicator) {
10301 D(p->level--);
10302 return NULL;
10303 }
10304 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10305 void *invalid_primary_var;
10306 if (
10307 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
10308 )
10309 {
10310 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10311 _res = invalid_primary_var;
10312 goto done;
10313 }
10314 p->mark = _mark;
10315 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
10317 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010318 { // primary '.' NAME
10319 if (p->error_indicator) {
10320 D(p->level--);
10321 return NULL;
10322 }
10323 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10324 Token * _literal;
10325 expr_ty a;
10326 expr_ty b;
10327 if (
10328 (a = primary_rule(p)) // primary
10329 &&
10330 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
10331 &&
10332 (b = _PyPegen_name_token(p)) // NAME
10333 )
10334 {
10335 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10336 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10337 if (_token == NULL) {
10338 D(p->level--);
10339 return NULL;
10340 }
10341 int _end_lineno = _token->end_lineno;
10342 UNUSED(_end_lineno); // Only used by EXTRA macro
10343 int _end_col_offset = _token->end_col_offset;
10344 UNUSED(_end_col_offset); // Only used by EXTRA macro
10345 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10346 if (_res == NULL && PyErr_Occurred()) {
10347 p->error_indicator = 1;
10348 D(p->level--);
10349 return NULL;
10350 }
10351 goto done;
10352 }
10353 p->mark = _mark;
10354 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
10356 }
10357 { // primary genexp
10358 if (p->error_indicator) {
10359 D(p->level--);
10360 return NULL;
10361 }
10362 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10363 expr_ty a;
10364 expr_ty b;
10365 if (
10366 (a = primary_rule(p)) // primary
10367 &&
10368 (b = genexp_rule(p)) // genexp
10369 )
10370 {
10371 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10372 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10373 if (_token == NULL) {
10374 D(p->level--);
10375 return NULL;
10376 }
10377 int _end_lineno = _token->end_lineno;
10378 UNUSED(_end_lineno); // Only used by EXTRA macro
10379 int _end_col_offset = _token->end_col_offset;
10380 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010381 _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 +010010382 if (_res == NULL && PyErr_Occurred()) {
10383 p->error_indicator = 1;
10384 D(p->level--);
10385 return NULL;
10386 }
10387 goto done;
10388 }
10389 p->mark = _mark;
10390 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
10392 }
10393 { // primary '(' arguments? ')'
10394 if (p->error_indicator) {
10395 D(p->level--);
10396 return NULL;
10397 }
10398 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10399 Token * _literal;
10400 Token * _literal_1;
10401 expr_ty a;
10402 void *b;
10403 if (
10404 (a = primary_rule(p)) // primary
10405 &&
10406 (_literal = _PyPegen_expect_token(p, 7)) // token='('
10407 &&
10408 (b = arguments_rule(p), 1) // arguments?
10409 &&
10410 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
10411 )
10412 {
10413 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10414 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10415 if (_token == NULL) {
10416 D(p->level--);
10417 return NULL;
10418 }
10419 int _end_lineno = _token->end_lineno;
10420 UNUSED(_end_lineno); // Only used by EXTRA macro
10421 int _end_col_offset = _token->end_col_offset;
10422 UNUSED(_end_col_offset); // Only used by EXTRA macro
10423 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10424 if (_res == NULL && PyErr_Occurred()) {
10425 p->error_indicator = 1;
10426 D(p->level--);
10427 return NULL;
10428 }
10429 goto done;
10430 }
10431 p->mark = _mark;
10432 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
10434 }
10435 { // primary '[' slices ']'
10436 if (p->error_indicator) {
10437 D(p->level--);
10438 return NULL;
10439 }
10440 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10441 Token * _literal;
10442 Token * _literal_1;
10443 expr_ty a;
10444 expr_ty b;
10445 if (
10446 (a = primary_rule(p)) // primary
10447 &&
10448 (_literal = _PyPegen_expect_token(p, 9)) // token='['
10449 &&
10450 (b = slices_rule(p)) // slices
10451 &&
10452 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
10453 )
10454 {
10455 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10456 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10457 if (_token == NULL) {
10458 D(p->level--);
10459 return NULL;
10460 }
10461 int _end_lineno = _token->end_lineno;
10462 UNUSED(_end_lineno); // Only used by EXTRA macro
10463 int _end_col_offset = _token->end_col_offset;
10464 UNUSED(_end_col_offset); // Only used by EXTRA macro
10465 _res = _Py_Subscript ( a , b , Load , EXTRA );
10466 if (_res == NULL && PyErr_Occurred()) {
10467 p->error_indicator = 1;
10468 D(p->level--);
10469 return NULL;
10470 }
10471 goto done;
10472 }
10473 p->mark = _mark;
10474 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
10476 }
10477 { // atom
10478 if (p->error_indicator) {
10479 D(p->level--);
10480 return NULL;
10481 }
10482 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
10483 expr_ty atom_var;
10484 if (
10485 (atom_var = atom_rule(p)) // atom
10486 )
10487 {
10488 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
10489 _res = atom_var;
10490 goto done;
10491 }
10492 p->mark = _mark;
10493 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
10495 }
10496 _res = NULL;
10497 done:
10498 D(p->level--);
10499 return _res;
10500}
10501
10502// slices: slice !',' | ','.slice+ ','?
10503static expr_ty
10504slices_rule(Parser *p)
10505{
10506 D(p->level++);
10507 if (p->error_indicator) {
10508 D(p->level--);
10509 return NULL;
10510 }
10511 expr_ty _res = NULL;
10512 int _mark = p->mark;
10513 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10514 p->error_indicator = 1;
10515 D(p->level--);
10516 return NULL;
10517 }
10518 int _start_lineno = p->tokens[_mark]->lineno;
10519 UNUSED(_start_lineno); // Only used by EXTRA macro
10520 int _start_col_offset = p->tokens[_mark]->col_offset;
10521 UNUSED(_start_col_offset); // Only used by EXTRA macro
10522 { // slice !','
10523 if (p->error_indicator) {
10524 D(p->level--);
10525 return NULL;
10526 }
10527 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
10528 expr_ty a;
10529 if (
10530 (a = slice_rule(p)) // slice
10531 &&
10532 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
10533 )
10534 {
10535 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
10536 _res = a;
10537 if (_res == NULL && PyErr_Occurred()) {
10538 p->error_indicator = 1;
10539 D(p->level--);
10540 return NULL;
10541 }
10542 goto done;
10543 }
10544 p->mark = _mark;
10545 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
10547 }
10548 { // ','.slice+ ','?
10549 if (p->error_indicator) {
10550 D(p->level--);
10551 return NULL;
10552 }
10553 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10554 void *_opt_var;
10555 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010556 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010557 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010558 (a = (asdl_expr_seq*)_gather_92_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010559 &&
10560 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10561 )
10562 {
10563 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10564 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10565 if (_token == NULL) {
10566 D(p->level--);
10567 return NULL;
10568 }
10569 int _end_lineno = _token->end_lineno;
10570 UNUSED(_end_lineno); // Only used by EXTRA macro
10571 int _end_col_offset = _token->end_col_offset;
10572 UNUSED(_end_col_offset); // Only used by EXTRA macro
10573 _res = _Py_Tuple ( a , Load , EXTRA );
10574 if (_res == NULL && PyErr_Occurred()) {
10575 p->error_indicator = 1;
10576 D(p->level--);
10577 return NULL;
10578 }
10579 goto done;
10580 }
10581 p->mark = _mark;
10582 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
10584 }
10585 _res = NULL;
10586 done:
10587 D(p->level--);
10588 return _res;
10589}
10590
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010591// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010592static expr_ty
10593slice_rule(Parser *p)
10594{
10595 D(p->level++);
10596 if (p->error_indicator) {
10597 D(p->level--);
10598 return NULL;
10599 }
10600 expr_ty _res = NULL;
10601 int _mark = p->mark;
10602 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10603 p->error_indicator = 1;
10604 D(p->level--);
10605 return NULL;
10606 }
10607 int _start_lineno = p->tokens[_mark]->lineno;
10608 UNUSED(_start_lineno); // Only used by EXTRA macro
10609 int _start_col_offset = p->tokens[_mark]->col_offset;
10610 UNUSED(_start_col_offset); // Only used by EXTRA macro
10611 { // expression? ':' expression? [':' expression?]
10612 if (p->error_indicator) {
10613 D(p->level--);
10614 return NULL;
10615 }
10616 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10617 Token * _literal;
10618 void *a;
10619 void *b;
10620 void *c;
10621 if (
10622 (a = expression_rule(p), 1) // expression?
10623 &&
10624 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10625 &&
10626 (b = expression_rule(p), 1) // expression?
10627 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010628 (c = _tmp_94_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010629 )
10630 {
10631 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10632 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10633 if (_token == NULL) {
10634 D(p->level--);
10635 return NULL;
10636 }
10637 int _end_lineno = _token->end_lineno;
10638 UNUSED(_end_lineno); // Only used by EXTRA macro
10639 int _end_col_offset = _token->end_col_offset;
10640 UNUSED(_end_col_offset); // Only used by EXTRA macro
10641 _res = _Py_Slice ( a , b , c , EXTRA );
10642 if (_res == NULL && PyErr_Occurred()) {
10643 p->error_indicator = 1;
10644 D(p->level--);
10645 return NULL;
10646 }
10647 goto done;
10648 }
10649 p->mark = _mark;
10650 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10652 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010653 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010654 if (p->error_indicator) {
10655 D(p->level--);
10656 return NULL;
10657 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010658 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010659 expr_ty a;
10660 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010661 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010662 )
10663 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010664 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010665 _res = a;
10666 if (_res == NULL && PyErr_Occurred()) {
10667 p->error_indicator = 1;
10668 D(p->level--);
10669 return NULL;
10670 }
10671 goto done;
10672 }
10673 p->mark = _mark;
10674 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010676 }
10677 _res = NULL;
10678 done:
10679 D(p->level--);
10680 return _res;
10681}
10682
10683// atom:
10684// | NAME
10685// | 'True'
10686// | 'False'
10687// | 'None'
10688// | &STRING strings
10689// | NUMBER
10690// | &'(' (tuple | group | genexp)
10691// | &'[' (list | listcomp)
10692// | &'{' (dict | set | dictcomp | setcomp)
10693// | '...'
10694static expr_ty
10695atom_rule(Parser *p)
10696{
10697 D(p->level++);
10698 if (p->error_indicator) {
10699 D(p->level--);
10700 return NULL;
10701 }
10702 expr_ty _res = NULL;
10703 int _mark = p->mark;
10704 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10705 p->error_indicator = 1;
10706 D(p->level--);
10707 return NULL;
10708 }
10709 int _start_lineno = p->tokens[_mark]->lineno;
10710 UNUSED(_start_lineno); // Only used by EXTRA macro
10711 int _start_col_offset = p->tokens[_mark]->col_offset;
10712 UNUSED(_start_col_offset); // Only used by EXTRA macro
10713 { // NAME
10714 if (p->error_indicator) {
10715 D(p->level--);
10716 return NULL;
10717 }
10718 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10719 expr_ty name_var;
10720 if (
10721 (name_var = _PyPegen_name_token(p)) // NAME
10722 )
10723 {
10724 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10725 _res = name_var;
10726 goto done;
10727 }
10728 p->mark = _mark;
10729 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10731 }
10732 { // 'True'
10733 if (p->error_indicator) {
10734 D(p->level--);
10735 return NULL;
10736 }
10737 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
10738 Token * _keyword;
10739 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010740 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010741 )
10742 {
10743 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
10744 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10745 if (_token == NULL) {
10746 D(p->level--);
10747 return NULL;
10748 }
10749 int _end_lineno = _token->end_lineno;
10750 UNUSED(_end_lineno); // Only used by EXTRA macro
10751 int _end_col_offset = _token->end_col_offset;
10752 UNUSED(_end_col_offset); // Only used by EXTRA macro
10753 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10754 if (_res == NULL && PyErr_Occurred()) {
10755 p->error_indicator = 1;
10756 D(p->level--);
10757 return NULL;
10758 }
10759 goto done;
10760 }
10761 p->mark = _mark;
10762 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
10764 }
10765 { // 'False'
10766 if (p->error_indicator) {
10767 D(p->level--);
10768 return NULL;
10769 }
10770 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
10771 Token * _keyword;
10772 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010773 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010774 )
10775 {
10776 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
10777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10778 if (_token == NULL) {
10779 D(p->level--);
10780 return NULL;
10781 }
10782 int _end_lineno = _token->end_lineno;
10783 UNUSED(_end_lineno); // Only used by EXTRA macro
10784 int _end_col_offset = _token->end_col_offset;
10785 UNUSED(_end_col_offset); // Only used by EXTRA macro
10786 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10787 if (_res == NULL && PyErr_Occurred()) {
10788 p->error_indicator = 1;
10789 D(p->level--);
10790 return NULL;
10791 }
10792 goto done;
10793 }
10794 p->mark = _mark;
10795 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
10797 }
10798 { // 'None'
10799 if (p->error_indicator) {
10800 D(p->level--);
10801 return NULL;
10802 }
10803 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
10804 Token * _keyword;
10805 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010806 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010807 )
10808 {
10809 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
10810 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10811 if (_token == NULL) {
10812 D(p->level--);
10813 return NULL;
10814 }
10815 int _end_lineno = _token->end_lineno;
10816 UNUSED(_end_lineno); // Only used by EXTRA macro
10817 int _end_col_offset = _token->end_col_offset;
10818 UNUSED(_end_col_offset); // Only used by EXTRA macro
10819 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10820 if (_res == NULL && PyErr_Occurred()) {
10821 p->error_indicator = 1;
10822 D(p->level--);
10823 return NULL;
10824 }
10825 goto done;
10826 }
10827 p->mark = _mark;
10828 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
10830 }
10831 { // &STRING strings
10832 if (p->error_indicator) {
10833 D(p->level--);
10834 return NULL;
10835 }
10836 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10837 expr_ty strings_var;
10838 if (
10839 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10840 &&
10841 (strings_var = strings_rule(p)) // strings
10842 )
10843 {
10844 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10845 _res = strings_var;
10846 goto done;
10847 }
10848 p->mark = _mark;
10849 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
10851 }
10852 { // NUMBER
10853 if (p->error_indicator) {
10854 D(p->level--);
10855 return NULL;
10856 }
10857 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10858 expr_ty number_var;
10859 if (
10860 (number_var = _PyPegen_number_token(p)) // NUMBER
10861 )
10862 {
10863 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10864 _res = number_var;
10865 goto done;
10866 }
10867 p->mark = _mark;
10868 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
10870 }
10871 { // &'(' (tuple | group | genexp)
10872 if (p->error_indicator) {
10873 D(p->level--);
10874 return NULL;
10875 }
10876 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010877 void *_tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010878 if (
10879 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
10880 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010881 (_tmp_95_var = _tmp_95_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010882 )
10883 {
10884 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 +000010885 _res = _tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010886 goto done;
10887 }
10888 p->mark = _mark;
10889 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
10891 }
10892 { // &'[' (list | listcomp)
10893 if (p->error_indicator) {
10894 D(p->level--);
10895 return NULL;
10896 }
10897 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010898 void *_tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010899 if (
10900 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
10901 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010902 (_tmp_96_var = _tmp_96_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010903 )
10904 {
10905 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010906 _res = _tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010907 goto done;
10908 }
10909 p->mark = _mark;
10910 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
10912 }
10913 { // &'{' (dict | set | dictcomp | setcomp)
10914 if (p->error_indicator) {
10915 D(p->level--);
10916 return NULL;
10917 }
10918 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 +000010919 void *_tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010920 if (
10921 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
10922 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010923 (_tmp_97_var = _tmp_97_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010924 )
10925 {
10926 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 +000010927 _res = _tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010928 goto done;
10929 }
10930 p->mark = _mark;
10931 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
10933 }
10934 { // '...'
10935 if (p->error_indicator) {
10936 D(p->level--);
10937 return NULL;
10938 }
10939 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
10940 Token * _literal;
10941 if (
10942 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
10943 )
10944 {
10945 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
10946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10947 if (_token == NULL) {
10948 D(p->level--);
10949 return NULL;
10950 }
10951 int _end_lineno = _token->end_lineno;
10952 UNUSED(_end_lineno); // Only used by EXTRA macro
10953 int _end_col_offset = _token->end_col_offset;
10954 UNUSED(_end_col_offset); // Only used by EXTRA macro
10955 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
10956 if (_res == NULL && PyErr_Occurred()) {
10957 p->error_indicator = 1;
10958 D(p->level--);
10959 return NULL;
10960 }
10961 goto done;
10962 }
10963 p->mark = _mark;
10964 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
10966 }
10967 _res = NULL;
10968 done:
10969 D(p->level--);
10970 return _res;
10971}
10972
10973// strings: STRING+
10974static expr_ty
10975strings_rule(Parser *p)
10976{
10977 D(p->level++);
10978 if (p->error_indicator) {
10979 D(p->level--);
10980 return NULL;
10981 }
10982 expr_ty _res = NULL;
10983 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
10984 D(p->level--);
10985 return _res;
10986 }
10987 int _mark = p->mark;
10988 { // STRING+
10989 if (p->error_indicator) {
10990 D(p->level--);
10991 return NULL;
10992 }
10993 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
10994 asdl_seq * a;
10995 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010996 (a = _loop1_98_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010997 )
10998 {
10999 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
11000 _res = _PyPegen_concatenate_strings ( p , a );
11001 if (_res == NULL && PyErr_Occurred()) {
11002 p->error_indicator = 1;
11003 D(p->level--);
11004 return NULL;
11005 }
11006 goto done;
11007 }
11008 p->mark = _mark;
11009 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
11011 }
11012 _res = NULL;
11013 done:
11014 _PyPegen_insert_memo(p, _mark, strings_type, _res);
11015 D(p->level--);
11016 return _res;
11017}
11018
11019// list: '[' star_named_expressions? ']'
11020static expr_ty
11021list_rule(Parser *p)
11022{
11023 D(p->level++);
11024 if (p->error_indicator) {
11025 D(p->level--);
11026 return NULL;
11027 }
11028 expr_ty _res = NULL;
11029 int _mark = p->mark;
11030 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11031 p->error_indicator = 1;
11032 D(p->level--);
11033 return NULL;
11034 }
11035 int _start_lineno = p->tokens[_mark]->lineno;
11036 UNUSED(_start_lineno); // Only used by EXTRA macro
11037 int _start_col_offset = p->tokens[_mark]->col_offset;
11038 UNUSED(_start_col_offset); // Only used by EXTRA macro
11039 { // '[' star_named_expressions? ']'
11040 if (p->error_indicator) {
11041 D(p->level--);
11042 return NULL;
11043 }
11044 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11045 Token * _literal;
11046 Token * _literal_1;
11047 void *a;
11048 if (
11049 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11050 &&
11051 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
11052 &&
11053 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11054 )
11055 {
11056 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11057 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11058 if (_token == NULL) {
11059 D(p->level--);
11060 return NULL;
11061 }
11062 int _end_lineno = _token->end_lineno;
11063 UNUSED(_end_lineno); // Only used by EXTRA macro
11064 int _end_col_offset = _token->end_col_offset;
11065 UNUSED(_end_col_offset); // Only used by EXTRA macro
11066 _res = _Py_List ( a , Load , EXTRA );
11067 if (_res == NULL && PyErr_Occurred()) {
11068 p->error_indicator = 1;
11069 D(p->level--);
11070 return NULL;
11071 }
11072 goto done;
11073 }
11074 p->mark = _mark;
11075 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
11077 }
11078 _res = NULL;
11079 done:
11080 D(p->level--);
11081 return _res;
11082}
11083
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011084// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011085static expr_ty
11086listcomp_rule(Parser *p)
11087{
11088 D(p->level++);
11089 if (p->error_indicator) {
11090 D(p->level--);
11091 return NULL;
11092 }
11093 expr_ty _res = NULL;
11094 int _mark = p->mark;
11095 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11096 p->error_indicator = 1;
11097 D(p->level--);
11098 return NULL;
11099 }
11100 int _start_lineno = p->tokens[_mark]->lineno;
11101 UNUSED(_start_lineno); // Only used by EXTRA macro
11102 int _start_col_offset = p->tokens[_mark]->col_offset;
11103 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011104 { // '[' named_expression ~ for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011105 if (p->error_indicator) {
11106 D(p->level--);
11107 return NULL;
11108 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011109 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11110 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011111 Token * _literal;
11112 Token * _literal_1;
11113 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011114 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011115 if (
11116 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11117 &&
11118 (a = named_expression_rule(p)) // named_expression
11119 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011120 (_cut_var = 1)
11121 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011122 (b = for_if_clauses_rule(p)) // for_if_clauses
11123 &&
11124 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11125 )
11126 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011127 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 +010011128 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11129 if (_token == NULL) {
11130 D(p->level--);
11131 return NULL;
11132 }
11133 int _end_lineno = _token->end_lineno;
11134 UNUSED(_end_lineno); // Only used by EXTRA macro
11135 int _end_col_offset = _token->end_col_offset;
11136 UNUSED(_end_col_offset); // Only used by EXTRA macro
11137 _res = _Py_ListComp ( a , b , EXTRA );
11138 if (_res == NULL && PyErr_Occurred()) {
11139 p->error_indicator = 1;
11140 D(p->level--);
11141 return NULL;
11142 }
11143 goto done;
11144 }
11145 p->mark = _mark;
11146 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11148 if (_cut_var) {
11149 D(p->level--);
11150 return NULL;
11151 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011152 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011153 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011154 if (p->error_indicator) {
11155 D(p->level--);
11156 return NULL;
11157 }
11158 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11159 void *invalid_comprehension_var;
11160 if (
11161 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11162 )
11163 {
11164 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11165 _res = invalid_comprehension_var;
11166 goto done;
11167 }
11168 p->mark = _mark;
11169 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11171 }
11172 _res = NULL;
11173 done:
11174 D(p->level--);
11175 return _res;
11176}
11177
11178// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11179static expr_ty
11180tuple_rule(Parser *p)
11181{
11182 D(p->level++);
11183 if (p->error_indicator) {
11184 D(p->level--);
11185 return NULL;
11186 }
11187 expr_ty _res = NULL;
11188 int _mark = p->mark;
11189 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11190 p->error_indicator = 1;
11191 D(p->level--);
11192 return NULL;
11193 }
11194 int _start_lineno = p->tokens[_mark]->lineno;
11195 UNUSED(_start_lineno); // Only used by EXTRA macro
11196 int _start_col_offset = p->tokens[_mark]->col_offset;
11197 UNUSED(_start_col_offset); // Only used by EXTRA macro
11198 { // '(' [star_named_expression ',' star_named_expressions?] ')'
11199 if (p->error_indicator) {
11200 D(p->level--);
11201 return NULL;
11202 }
11203 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11204 Token * _literal;
11205 Token * _literal_1;
11206 void *a;
11207 if (
11208 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11209 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011210 (a = _tmp_99_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011211 &&
11212 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11213 )
11214 {
11215 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11216 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11217 if (_token == NULL) {
11218 D(p->level--);
11219 return NULL;
11220 }
11221 int _end_lineno = _token->end_lineno;
11222 UNUSED(_end_lineno); // Only used by EXTRA macro
11223 int _end_col_offset = _token->end_col_offset;
11224 UNUSED(_end_col_offset); // Only used by EXTRA macro
11225 _res = _Py_Tuple ( a , Load , EXTRA );
11226 if (_res == NULL && PyErr_Occurred()) {
11227 p->error_indicator = 1;
11228 D(p->level--);
11229 return NULL;
11230 }
11231 goto done;
11232 }
11233 p->mark = _mark;
11234 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11236 }
11237 _res = NULL;
11238 done:
11239 D(p->level--);
11240 return _res;
11241}
11242
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011243// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011244static expr_ty
11245group_rule(Parser *p)
11246{
11247 D(p->level++);
11248 if (p->error_indicator) {
11249 D(p->level--);
11250 return NULL;
11251 }
11252 expr_ty _res = NULL;
11253 int _mark = p->mark;
11254 { // '(' (yield_expr | named_expression) ')'
11255 if (p->error_indicator) {
11256 D(p->level--);
11257 return NULL;
11258 }
11259 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11260 Token * _literal;
11261 Token * _literal_1;
11262 void *a;
11263 if (
11264 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11265 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011266 (a = _tmp_100_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011267 &&
11268 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11269 )
11270 {
11271 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11272 _res = a;
11273 if (_res == NULL && PyErr_Occurred()) {
11274 p->error_indicator = 1;
11275 D(p->level--);
11276 return NULL;
11277 }
11278 goto done;
11279 }
11280 p->mark = _mark;
11281 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11283 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011284 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011285 if (p->error_indicator) {
11286 D(p->level--);
11287 return NULL;
11288 }
11289 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11290 void *invalid_group_var;
11291 if (
11292 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11293 )
11294 {
11295 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11296 _res = invalid_group_var;
11297 goto done;
11298 }
11299 p->mark = _mark;
11300 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11301 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11302 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011303 _res = NULL;
11304 done:
11305 D(p->level--);
11306 return _res;
11307}
11308
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011309// genexp: '(' named_expression ~ for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011310static expr_ty
11311genexp_rule(Parser *p)
11312{
11313 D(p->level++);
11314 if (p->error_indicator) {
11315 D(p->level--);
11316 return NULL;
11317 }
11318 expr_ty _res = NULL;
11319 int _mark = p->mark;
11320 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11321 p->error_indicator = 1;
11322 D(p->level--);
11323 return NULL;
11324 }
11325 int _start_lineno = p->tokens[_mark]->lineno;
11326 UNUSED(_start_lineno); // Only used by EXTRA macro
11327 int _start_col_offset = p->tokens[_mark]->col_offset;
11328 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011329 { // '(' named_expression ~ for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011330 if (p->error_indicator) {
11331 D(p->level--);
11332 return NULL;
11333 }
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011334 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011335 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011336 Token * _literal;
11337 Token * _literal_1;
11338 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011339 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011340 if (
11341 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11342 &&
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011343 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011344 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011345 (_cut_var = 1)
11346 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011347 (b = for_if_clauses_rule(p)) // for_if_clauses
11348 &&
11349 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11350 )
11351 {
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011352 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011353 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11354 if (_token == NULL) {
11355 D(p->level--);
11356 return NULL;
11357 }
11358 int _end_lineno = _token->end_lineno;
11359 UNUSED(_end_lineno); // Only used by EXTRA macro
11360 int _end_col_offset = _token->end_col_offset;
11361 UNUSED(_end_col_offset); // Only used by EXTRA macro
11362 _res = _Py_GeneratorExp ( a , b , EXTRA );
11363 if (_res == NULL && PyErr_Occurred()) {
11364 p->error_indicator = 1;
11365 D(p->level--);
11366 return NULL;
11367 }
11368 goto done;
11369 }
11370 p->mark = _mark;
11371 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011373 if (_cut_var) {
11374 D(p->level--);
11375 return NULL;
11376 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011377 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011378 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011379 if (p->error_indicator) {
11380 D(p->level--);
11381 return NULL;
11382 }
11383 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11384 void *invalid_comprehension_var;
11385 if (
11386 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11387 )
11388 {
11389 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11390 _res = invalid_comprehension_var;
11391 goto done;
11392 }
11393 p->mark = _mark;
11394 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11396 }
11397 _res = NULL;
11398 done:
11399 D(p->level--);
11400 return _res;
11401}
11402
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011403// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011404static expr_ty
11405set_rule(Parser *p)
11406{
11407 D(p->level++);
11408 if (p->error_indicator) {
11409 D(p->level--);
11410 return NULL;
11411 }
11412 expr_ty _res = NULL;
11413 int _mark = p->mark;
11414 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11415 p->error_indicator = 1;
11416 D(p->level--);
11417 return NULL;
11418 }
11419 int _start_lineno = p->tokens[_mark]->lineno;
11420 UNUSED(_start_lineno); // Only used by EXTRA macro
11421 int _start_col_offset = p->tokens[_mark]->col_offset;
11422 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011423 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011424 if (p->error_indicator) {
11425 D(p->level--);
11426 return NULL;
11427 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011428 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011429 Token * _literal;
11430 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011431 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011432 if (
11433 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11434 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011435 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011436 &&
11437 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11438 )
11439 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011440 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 +010011441 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11442 if (_token == NULL) {
11443 D(p->level--);
11444 return NULL;
11445 }
11446 int _end_lineno = _token->end_lineno;
11447 UNUSED(_end_lineno); // Only used by EXTRA macro
11448 int _end_col_offset = _token->end_col_offset;
11449 UNUSED(_end_col_offset); // Only used by EXTRA macro
11450 _res = _Py_Set ( a , EXTRA );
11451 if (_res == NULL && PyErr_Occurred()) {
11452 p->error_indicator = 1;
11453 D(p->level--);
11454 return NULL;
11455 }
11456 goto done;
11457 }
11458 p->mark = _mark;
11459 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011461 }
11462 _res = NULL;
11463 done:
11464 D(p->level--);
11465 return _res;
11466}
11467
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011468// setcomp: '{' named_expression ~ for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011469static expr_ty
11470setcomp_rule(Parser *p)
11471{
11472 D(p->level++);
11473 if (p->error_indicator) {
11474 D(p->level--);
11475 return NULL;
11476 }
11477 expr_ty _res = NULL;
11478 int _mark = p->mark;
11479 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11480 p->error_indicator = 1;
11481 D(p->level--);
11482 return NULL;
11483 }
11484 int _start_lineno = p->tokens[_mark]->lineno;
11485 UNUSED(_start_lineno); // Only used by EXTRA macro
11486 int _start_col_offset = p->tokens[_mark]->col_offset;
11487 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011488 { // '{' named_expression ~ for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011489 if (p->error_indicator) {
11490 D(p->level--);
11491 return NULL;
11492 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011493 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011494 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011495 Token * _literal;
11496 Token * _literal_1;
11497 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011498 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011499 if (
11500 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11501 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011502 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011503 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011504 (_cut_var = 1)
11505 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011506 (b = for_if_clauses_rule(p)) // for_if_clauses
11507 &&
11508 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11509 )
11510 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011511 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 +010011512 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11513 if (_token == NULL) {
11514 D(p->level--);
11515 return NULL;
11516 }
11517 int _end_lineno = _token->end_lineno;
11518 UNUSED(_end_lineno); // Only used by EXTRA macro
11519 int _end_col_offset = _token->end_col_offset;
11520 UNUSED(_end_col_offset); // Only used by EXTRA macro
11521 _res = _Py_SetComp ( a , b , EXTRA );
11522 if (_res == NULL && PyErr_Occurred()) {
11523 p->error_indicator = 1;
11524 D(p->level--);
11525 return NULL;
11526 }
11527 goto done;
11528 }
11529 p->mark = _mark;
11530 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011532 if (_cut_var) {
11533 D(p->level--);
11534 return NULL;
11535 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011536 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011537 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011538 if (p->error_indicator) {
11539 D(p->level--);
11540 return NULL;
11541 }
11542 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11543 void *invalid_comprehension_var;
11544 if (
11545 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11546 )
11547 {
11548 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11549 _res = invalid_comprehension_var;
11550 goto done;
11551 }
11552 p->mark = _mark;
11553 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11555 }
11556 _res = NULL;
11557 done:
11558 D(p->level--);
11559 return _res;
11560}
11561
11562// dict: '{' double_starred_kvpairs? '}'
11563static expr_ty
11564dict_rule(Parser *p)
11565{
11566 D(p->level++);
11567 if (p->error_indicator) {
11568 D(p->level--);
11569 return NULL;
11570 }
11571 expr_ty _res = NULL;
11572 int _mark = p->mark;
11573 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11574 p->error_indicator = 1;
11575 D(p->level--);
11576 return NULL;
11577 }
11578 int _start_lineno = p->tokens[_mark]->lineno;
11579 UNUSED(_start_lineno); // Only used by EXTRA macro
11580 int _start_col_offset = p->tokens[_mark]->col_offset;
11581 UNUSED(_start_col_offset); // Only used by EXTRA macro
11582 { // '{' double_starred_kvpairs? '}'
11583 if (p->error_indicator) {
11584 D(p->level--);
11585 return NULL;
11586 }
11587 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11588 Token * _literal;
11589 Token * _literal_1;
11590 void *a;
11591 if (
11592 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11593 &&
11594 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
11595 &&
11596 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11597 )
11598 {
11599 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11600 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11601 if (_token == NULL) {
11602 D(p->level--);
11603 return NULL;
11604 }
11605 int _end_lineno = _token->end_lineno;
11606 UNUSED(_end_lineno); // Only used by EXTRA macro
11607 int _end_col_offset = _token->end_col_offset;
11608 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030011609 _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 +010011610 if (_res == NULL && PyErr_Occurred()) {
11611 p->error_indicator = 1;
11612 D(p->level--);
11613 return NULL;
11614 }
11615 goto done;
11616 }
11617 p->mark = _mark;
11618 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11620 }
11621 _res = NULL;
11622 done:
11623 D(p->level--);
11624 return _res;
11625}
11626
11627// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
11628static expr_ty
11629dictcomp_rule(Parser *p)
11630{
11631 D(p->level++);
11632 if (p->error_indicator) {
11633 D(p->level--);
11634 return NULL;
11635 }
11636 expr_ty _res = NULL;
11637 int _mark = p->mark;
11638 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11639 p->error_indicator = 1;
11640 D(p->level--);
11641 return NULL;
11642 }
11643 int _start_lineno = p->tokens[_mark]->lineno;
11644 UNUSED(_start_lineno); // Only used by EXTRA macro
11645 int _start_col_offset = p->tokens[_mark]->col_offset;
11646 UNUSED(_start_col_offset); // Only used by EXTRA macro
11647 { // '{' kvpair for_if_clauses '}'
11648 if (p->error_indicator) {
11649 D(p->level--);
11650 return NULL;
11651 }
11652 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11653 Token * _literal;
11654 Token * _literal_1;
11655 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011656 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011657 if (
11658 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11659 &&
11660 (a = kvpair_rule(p)) // kvpair
11661 &&
11662 (b = for_if_clauses_rule(p)) // for_if_clauses
11663 &&
11664 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11665 )
11666 {
11667 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11668 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11669 if (_token == NULL) {
11670 D(p->level--);
11671 return NULL;
11672 }
11673 int _end_lineno = _token->end_lineno;
11674 UNUSED(_end_lineno); // Only used by EXTRA macro
11675 int _end_col_offset = _token->end_col_offset;
11676 UNUSED(_end_col_offset); // Only used by EXTRA macro
11677 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11678 if (_res == NULL && PyErr_Occurred()) {
11679 p->error_indicator = 1;
11680 D(p->level--);
11681 return NULL;
11682 }
11683 goto done;
11684 }
11685 p->mark = _mark;
11686 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11688 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011689 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011690 if (p->error_indicator) {
11691 D(p->level--);
11692 return NULL;
11693 }
11694 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11695 void *invalid_dict_comprehension_var;
11696 if (
11697 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11698 )
11699 {
11700 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11701 _res = invalid_dict_comprehension_var;
11702 goto done;
11703 }
11704 p->mark = _mark;
11705 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
11707 }
11708 _res = NULL;
11709 done:
11710 D(p->level--);
11711 return _res;
11712}
11713
11714// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
11715static asdl_seq*
11716double_starred_kvpairs_rule(Parser *p)
11717{
11718 D(p->level++);
11719 if (p->error_indicator) {
11720 D(p->level--);
11721 return NULL;
11722 }
11723 asdl_seq* _res = NULL;
11724 int _mark = p->mark;
11725 { // ','.double_starred_kvpair+ ','?
11726 if (p->error_indicator) {
11727 D(p->level--);
11728 return NULL;
11729 }
11730 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11731 void *_opt_var;
11732 UNUSED(_opt_var); // Silence compiler warnings
11733 asdl_seq * a;
11734 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011735 (a = _gather_101_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011736 &&
11737 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
11738 )
11739 {
11740 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11741 _res = a;
11742 if (_res == NULL && PyErr_Occurred()) {
11743 p->error_indicator = 1;
11744 D(p->level--);
11745 return NULL;
11746 }
11747 goto done;
11748 }
11749 p->mark = _mark;
11750 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11752 }
11753 _res = NULL;
11754 done:
11755 D(p->level--);
11756 return _res;
11757}
11758
11759// double_starred_kvpair: '**' bitwise_or | kvpair
11760static KeyValuePair*
11761double_starred_kvpair_rule(Parser *p)
11762{
11763 D(p->level++);
11764 if (p->error_indicator) {
11765 D(p->level--);
11766 return NULL;
11767 }
11768 KeyValuePair* _res = NULL;
11769 int _mark = p->mark;
11770 { // '**' bitwise_or
11771 if (p->error_indicator) {
11772 D(p->level--);
11773 return NULL;
11774 }
11775 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11776 Token * _literal;
11777 expr_ty a;
11778 if (
11779 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11780 &&
11781 (a = bitwise_or_rule(p)) // bitwise_or
11782 )
11783 {
11784 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11785 _res = _PyPegen_key_value_pair ( p , NULL , a );
11786 if (_res == NULL && PyErr_Occurred()) {
11787 p->error_indicator = 1;
11788 D(p->level--);
11789 return NULL;
11790 }
11791 goto done;
11792 }
11793 p->mark = _mark;
11794 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
11796 }
11797 { // kvpair
11798 if (p->error_indicator) {
11799 D(p->level--);
11800 return NULL;
11801 }
11802 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
11803 KeyValuePair* kvpair_var;
11804 if (
11805 (kvpair_var = kvpair_rule(p)) // kvpair
11806 )
11807 {
11808 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
11809 _res = kvpair_var;
11810 goto done;
11811 }
11812 p->mark = _mark;
11813 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
11815 }
11816 _res = NULL;
11817 done:
11818 D(p->level--);
11819 return _res;
11820}
11821
11822// kvpair: expression ':' expression
11823static KeyValuePair*
11824kvpair_rule(Parser *p)
11825{
11826 D(p->level++);
11827 if (p->error_indicator) {
11828 D(p->level--);
11829 return NULL;
11830 }
11831 KeyValuePair* _res = NULL;
11832 int _mark = p->mark;
11833 { // expression ':' expression
11834 if (p->error_indicator) {
11835 D(p->level--);
11836 return NULL;
11837 }
11838 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11839 Token * _literal;
11840 expr_ty a;
11841 expr_ty b;
11842 if (
11843 (a = expression_rule(p)) // expression
11844 &&
11845 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
11846 &&
11847 (b = expression_rule(p)) // expression
11848 )
11849 {
11850 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11851 _res = _PyPegen_key_value_pair ( p , a , b );
11852 if (_res == NULL && PyErr_Occurred()) {
11853 p->error_indicator = 1;
11854 D(p->level--);
11855 return NULL;
11856 }
11857 goto done;
11858 }
11859 p->mark = _mark;
11860 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
11862 }
11863 _res = NULL;
11864 done:
11865 D(p->level--);
11866 return _res;
11867}
11868
11869// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010011870static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011871for_if_clauses_rule(Parser *p)
11872{
11873 D(p->level++);
11874 if (p->error_indicator) {
11875 D(p->level--);
11876 return NULL;
11877 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010011878 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011879 int _mark = p->mark;
11880 { // for_if_clause+
11881 if (p->error_indicator) {
11882 D(p->level--);
11883 return NULL;
11884 }
11885 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 +010011886 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011887 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011888 (a = (asdl_comprehension_seq*)_loop1_103_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011889 )
11890 {
11891 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 +010011892 _res = a;
11893 if (_res == NULL && PyErr_Occurred()) {
11894 p->error_indicator = 1;
11895 D(p->level--);
11896 return NULL;
11897 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011898 goto done;
11899 }
11900 p->mark = _mark;
11901 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
11903 }
11904 _res = NULL;
11905 done:
11906 D(p->level--);
11907 return _res;
11908}
11909
11910// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011911// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11912// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11913// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011914static comprehension_ty
11915for_if_clause_rule(Parser *p)
11916{
11917 D(p->level++);
11918 if (p->error_indicator) {
11919 D(p->level--);
11920 return NULL;
11921 }
11922 comprehension_ty _res = NULL;
11923 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011924 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011925 if (p->error_indicator) {
11926 D(p->level--);
11927 return NULL;
11928 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011929 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11930 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011931 Token * _keyword;
11932 Token * _keyword_1;
11933 expr_ty a;
11934 Token * async_var;
11935 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011936 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011937 if (
11938 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
11939 &&
11940 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
11941 &&
11942 (a = star_targets_rule(p)) // star_targets
11943 &&
11944 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11945 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011946 (_cut_var = 1)
11947 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011948 (b = disjunction_rule(p)) // disjunction
11949 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011950 (c = (asdl_expr_seq*)_loop0_104_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011951 )
11952 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011953 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 +030011954 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011955 if (_res == NULL && PyErr_Occurred()) {
11956 p->error_indicator = 1;
11957 D(p->level--);
11958 return NULL;
11959 }
11960 goto done;
11961 }
11962 p->mark = _mark;
11963 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11965 if (_cut_var) {
11966 D(p->level--);
11967 return NULL;
11968 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011969 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011970 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011971 if (p->error_indicator) {
11972 D(p->level--);
11973 return NULL;
11974 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011975 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11976 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011977 Token * _keyword;
11978 Token * _keyword_1;
11979 expr_ty a;
11980 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011981 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011982 if (
11983 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
11984 &&
11985 (a = star_targets_rule(p)) // star_targets
11986 &&
11987 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11988 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011989 (_cut_var = 1)
11990 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011991 (b = disjunction_rule(p)) // disjunction
11992 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011993 (c = (asdl_expr_seq*)_loop0_105_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011994 )
11995 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011996 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 +010011997 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
11998 if (_res == NULL && PyErr_Occurred()) {
11999 p->error_indicator = 1;
12000 D(p->level--);
12001 return NULL;
12002 }
12003 goto done;
12004 }
12005 p->mark = _mark;
12006 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12008 if (_cut_var) {
12009 D(p->level--);
12010 return NULL;
12011 }
12012 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012013 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012014 if (p->error_indicator) {
12015 D(p->level--);
12016 return NULL;
12017 }
12018 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12019 void *invalid_for_target_var;
12020 if (
12021 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12022 )
12023 {
12024 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12025 _res = invalid_for_target_var;
12026 goto done;
12027 }
12028 p->mark = _mark;
12029 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012031 }
12032 _res = NULL;
12033 done:
12034 D(p->level--);
12035 return _res;
12036}
12037
12038// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12039static expr_ty
12040yield_expr_rule(Parser *p)
12041{
12042 D(p->level++);
12043 if (p->error_indicator) {
12044 D(p->level--);
12045 return NULL;
12046 }
12047 expr_ty _res = NULL;
12048 int _mark = p->mark;
12049 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12050 p->error_indicator = 1;
12051 D(p->level--);
12052 return NULL;
12053 }
12054 int _start_lineno = p->tokens[_mark]->lineno;
12055 UNUSED(_start_lineno); // Only used by EXTRA macro
12056 int _start_col_offset = p->tokens[_mark]->col_offset;
12057 UNUSED(_start_col_offset); // Only used by EXTRA macro
12058 { // 'yield' 'from' expression
12059 if (p->error_indicator) {
12060 D(p->level--);
12061 return NULL;
12062 }
12063 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12064 Token * _keyword;
12065 Token * _keyword_1;
12066 expr_ty a;
12067 if (
12068 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12069 &&
12070 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
12071 &&
12072 (a = expression_rule(p)) // expression
12073 )
12074 {
12075 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12076 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12077 if (_token == NULL) {
12078 D(p->level--);
12079 return NULL;
12080 }
12081 int _end_lineno = _token->end_lineno;
12082 UNUSED(_end_lineno); // Only used by EXTRA macro
12083 int _end_col_offset = _token->end_col_offset;
12084 UNUSED(_end_col_offset); // Only used by EXTRA macro
12085 _res = _Py_YieldFrom ( a , EXTRA );
12086 if (_res == NULL && PyErr_Occurred()) {
12087 p->error_indicator = 1;
12088 D(p->level--);
12089 return NULL;
12090 }
12091 goto done;
12092 }
12093 p->mark = _mark;
12094 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
12096 }
12097 { // 'yield' star_expressions?
12098 if (p->error_indicator) {
12099 D(p->level--);
12100 return NULL;
12101 }
12102 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12103 Token * _keyword;
12104 void *a;
12105 if (
12106 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12107 &&
12108 (a = star_expressions_rule(p), 1) // star_expressions?
12109 )
12110 {
12111 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12112 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12113 if (_token == NULL) {
12114 D(p->level--);
12115 return NULL;
12116 }
12117 int _end_lineno = _token->end_lineno;
12118 UNUSED(_end_lineno); // Only used by EXTRA macro
12119 int _end_col_offset = _token->end_col_offset;
12120 UNUSED(_end_col_offset); // Only used by EXTRA macro
12121 _res = _Py_Yield ( a , EXTRA );
12122 if (_res == NULL && PyErr_Occurred()) {
12123 p->error_indicator = 1;
12124 D(p->level--);
12125 return NULL;
12126 }
12127 goto done;
12128 }
12129 p->mark = _mark;
12130 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
12132 }
12133 _res = NULL;
12134 done:
12135 D(p->level--);
12136 return _res;
12137}
12138
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012139// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012140static expr_ty
12141arguments_rule(Parser *p)
12142{
12143 D(p->level++);
12144 if (p->error_indicator) {
12145 D(p->level--);
12146 return NULL;
12147 }
12148 expr_ty _res = NULL;
12149 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12150 D(p->level--);
12151 return _res;
12152 }
12153 int _mark = p->mark;
12154 { // args ','? &')'
12155 if (p->error_indicator) {
12156 D(p->level--);
12157 return NULL;
12158 }
12159 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12160 void *_opt_var;
12161 UNUSED(_opt_var); // Silence compiler warnings
12162 expr_ty a;
12163 if (
12164 (a = args_rule(p)) // args
12165 &&
12166 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12167 &&
12168 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
12169 )
12170 {
12171 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12172 _res = a;
12173 if (_res == NULL && PyErr_Occurred()) {
12174 p->error_indicator = 1;
12175 D(p->level--);
12176 return NULL;
12177 }
12178 goto done;
12179 }
12180 p->mark = _mark;
12181 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
12183 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012184 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012185 if (p->error_indicator) {
12186 D(p->level--);
12187 return NULL;
12188 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012189 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12190 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012191 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012192 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012193 )
12194 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012195 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12196 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012197 goto done;
12198 }
12199 p->mark = _mark;
12200 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012202 }
12203 _res = NULL;
12204 done:
12205 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
12206 D(p->level--);
12207 return _res;
12208}
12209
Pablo Galindo4a97b152020-09-02 17:44:19 +010012210// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012211static expr_ty
12212args_rule(Parser *p)
12213{
12214 D(p->level++);
12215 if (p->error_indicator) {
12216 D(p->level--);
12217 return NULL;
12218 }
12219 expr_ty _res = NULL;
12220 int _mark = p->mark;
12221 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12222 p->error_indicator = 1;
12223 D(p->level--);
12224 return NULL;
12225 }
12226 int _start_lineno = p->tokens[_mark]->lineno;
12227 UNUSED(_start_lineno); // Only used by EXTRA macro
12228 int _start_col_offset = p->tokens[_mark]->col_offset;
12229 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo4a97b152020-09-02 17:44:19 +010012230 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012231 if (p->error_indicator) {
12232 D(p->level--);
12233 return NULL;
12234 }
Pablo Galindo4a97b152020-09-02 17:44:19 +010012235 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 +010012236 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012237 void *b;
12238 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012239 (a = (asdl_expr_seq*)_gather_106_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012240 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012241 (b = _tmp_108_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012242 )
12243 {
Pablo Galindo4a97b152020-09-02 17:44:19 +010012244 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 +010012245 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12246 if (_token == NULL) {
12247 D(p->level--);
12248 return NULL;
12249 }
12250 int _end_lineno = _token->end_lineno;
12251 UNUSED(_end_lineno); // Only used by EXTRA macro
12252 int _end_col_offset = _token->end_col_offset;
12253 UNUSED(_end_col_offset); // Only used by EXTRA macro
12254 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012255 if (_res == NULL && PyErr_Occurred()) {
12256 p->error_indicator = 1;
12257 D(p->level--);
12258 return NULL;
12259 }
12260 goto done;
12261 }
12262 p->mark = _mark;
12263 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010012264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012265 }
12266 { // kwargs
12267 if (p->error_indicator) {
12268 D(p->level--);
12269 return NULL;
12270 }
12271 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
12272 asdl_seq* a;
12273 if (
12274 (a = kwargs_rule(p)) // kwargs
12275 )
12276 {
12277 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
12278 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12279 if (_token == NULL) {
12280 D(p->level--);
12281 return NULL;
12282 }
12283 int _end_lineno = _token->end_lineno;
12284 UNUSED(_end_lineno); // Only used by EXTRA macro
12285 int _end_col_offset = _token->end_col_offset;
12286 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012287 _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 +010012288 if (_res == NULL && PyErr_Occurred()) {
12289 p->error_indicator = 1;
12290 D(p->level--);
12291 return NULL;
12292 }
12293 goto done;
12294 }
12295 p->mark = _mark;
12296 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
12298 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012299 _res = NULL;
12300 done:
12301 D(p->level--);
12302 return _res;
12303}
12304
12305// kwargs:
12306// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12307// | ','.kwarg_or_starred+
12308// | ','.kwarg_or_double_starred+
12309static asdl_seq*
12310kwargs_rule(Parser *p)
12311{
12312 D(p->level++);
12313 if (p->error_indicator) {
12314 D(p->level--);
12315 return NULL;
12316 }
12317 asdl_seq* _res = NULL;
12318 int _mark = p->mark;
12319 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12320 if (p->error_indicator) {
12321 D(p->level--);
12322 return NULL;
12323 }
12324 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12325 Token * _literal;
12326 asdl_seq * a;
12327 asdl_seq * b;
12328 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012329 (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012330 &&
12331 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12332 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012333 (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012334 )
12335 {
12336 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12337 _res = _PyPegen_join_sequences ( p , a , b );
12338 if (_res == NULL && PyErr_Occurred()) {
12339 p->error_indicator = 1;
12340 D(p->level--);
12341 return NULL;
12342 }
12343 goto done;
12344 }
12345 p->mark = _mark;
12346 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12348 }
12349 { // ','.kwarg_or_starred+
12350 if (p->error_indicator) {
12351 D(p->level--);
12352 return NULL;
12353 }
12354 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012355 asdl_seq * _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012356 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012357 (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012358 )
12359 {
12360 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 +000012361 _res = _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012362 goto done;
12363 }
12364 p->mark = _mark;
12365 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
12367 }
12368 { // ','.kwarg_or_double_starred+
12369 if (p->error_indicator) {
12370 D(p->level--);
12371 return NULL;
12372 }
12373 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 +000012374 asdl_seq * _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012375 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012376 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012377 )
12378 {
12379 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 +000012380 _res = _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012381 goto done;
12382 }
12383 p->mark = _mark;
12384 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
12386 }
12387 _res = NULL;
12388 done:
12389 D(p->level--);
12390 return _res;
12391}
12392
12393// starred_expression: '*' expression
12394static expr_ty
12395starred_expression_rule(Parser *p)
12396{
12397 D(p->level++);
12398 if (p->error_indicator) {
12399 D(p->level--);
12400 return NULL;
12401 }
12402 expr_ty _res = NULL;
12403 int _mark = p->mark;
12404 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12405 p->error_indicator = 1;
12406 D(p->level--);
12407 return NULL;
12408 }
12409 int _start_lineno = p->tokens[_mark]->lineno;
12410 UNUSED(_start_lineno); // Only used by EXTRA macro
12411 int _start_col_offset = p->tokens[_mark]->col_offset;
12412 UNUSED(_start_col_offset); // Only used by EXTRA macro
12413 { // '*' expression
12414 if (p->error_indicator) {
12415 D(p->level--);
12416 return NULL;
12417 }
12418 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12419 Token * _literal;
12420 expr_ty a;
12421 if (
12422 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12423 &&
12424 (a = expression_rule(p)) // expression
12425 )
12426 {
12427 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12428 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12429 if (_token == NULL) {
12430 D(p->level--);
12431 return NULL;
12432 }
12433 int _end_lineno = _token->end_lineno;
12434 UNUSED(_end_lineno); // Only used by EXTRA macro
12435 int _end_col_offset = _token->end_col_offset;
12436 UNUSED(_end_col_offset); // Only used by EXTRA macro
12437 _res = _Py_Starred ( a , Load , EXTRA );
12438 if (_res == NULL && PyErr_Occurred()) {
12439 p->error_indicator = 1;
12440 D(p->level--);
12441 return NULL;
12442 }
12443 goto done;
12444 }
12445 p->mark = _mark;
12446 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
12448 }
12449 _res = NULL;
12450 done:
12451 D(p->level--);
12452 return _res;
12453}
12454
12455// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
12456static KeywordOrStarred*
12457kwarg_or_starred_rule(Parser *p)
12458{
12459 D(p->level++);
12460 if (p->error_indicator) {
12461 D(p->level--);
12462 return NULL;
12463 }
12464 KeywordOrStarred* _res = NULL;
12465 int _mark = p->mark;
12466 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12467 p->error_indicator = 1;
12468 D(p->level--);
12469 return NULL;
12470 }
12471 int _start_lineno = p->tokens[_mark]->lineno;
12472 UNUSED(_start_lineno); // Only used by EXTRA macro
12473 int _start_col_offset = p->tokens[_mark]->col_offset;
12474 UNUSED(_start_col_offset); // Only used by EXTRA macro
12475 { // NAME '=' expression
12476 if (p->error_indicator) {
12477 D(p->level--);
12478 return NULL;
12479 }
12480 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12481 Token * _literal;
12482 expr_ty a;
12483 expr_ty b;
12484 if (
12485 (a = _PyPegen_name_token(p)) // NAME
12486 &&
12487 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12488 &&
12489 (b = expression_rule(p)) // expression
12490 )
12491 {
12492 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12493 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12494 if (_token == NULL) {
12495 D(p->level--);
12496 return NULL;
12497 }
12498 int _end_lineno = _token->end_lineno;
12499 UNUSED(_end_lineno); // Only used by EXTRA macro
12500 int _end_col_offset = _token->end_col_offset;
12501 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012502 _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 +010012503 if (_res == NULL && PyErr_Occurred()) {
12504 p->error_indicator = 1;
12505 D(p->level--);
12506 return NULL;
12507 }
12508 goto done;
12509 }
12510 p->mark = _mark;
12511 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12513 }
12514 { // starred_expression
12515 if (p->error_indicator) {
12516 D(p->level--);
12517 return NULL;
12518 }
12519 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12520 expr_ty a;
12521 if (
12522 (a = starred_expression_rule(p)) // starred_expression
12523 )
12524 {
12525 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12526 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12527 if (_res == NULL && PyErr_Occurred()) {
12528 p->error_indicator = 1;
12529 D(p->level--);
12530 return NULL;
12531 }
12532 goto done;
12533 }
12534 p->mark = _mark;
12535 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
12537 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012538 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012539 if (p->error_indicator) {
12540 D(p->level--);
12541 return NULL;
12542 }
12543 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12544 void *invalid_kwarg_var;
12545 if (
12546 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12547 )
12548 {
12549 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12550 _res = invalid_kwarg_var;
12551 goto done;
12552 }
12553 p->mark = _mark;
12554 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12556 }
12557 _res = NULL;
12558 done:
12559 D(p->level--);
12560 return _res;
12561}
12562
12563// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
12564static KeywordOrStarred*
12565kwarg_or_double_starred_rule(Parser *p)
12566{
12567 D(p->level++);
12568 if (p->error_indicator) {
12569 D(p->level--);
12570 return NULL;
12571 }
12572 KeywordOrStarred* _res = NULL;
12573 int _mark = p->mark;
12574 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12575 p->error_indicator = 1;
12576 D(p->level--);
12577 return NULL;
12578 }
12579 int _start_lineno = p->tokens[_mark]->lineno;
12580 UNUSED(_start_lineno); // Only used by EXTRA macro
12581 int _start_col_offset = p->tokens[_mark]->col_offset;
12582 UNUSED(_start_col_offset); // Only used by EXTRA macro
12583 { // NAME '=' expression
12584 if (p->error_indicator) {
12585 D(p->level--);
12586 return NULL;
12587 }
12588 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12589 Token * _literal;
12590 expr_ty a;
12591 expr_ty b;
12592 if (
12593 (a = _PyPegen_name_token(p)) // NAME
12594 &&
12595 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12596 &&
12597 (b = expression_rule(p)) // expression
12598 )
12599 {
12600 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12601 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12602 if (_token == NULL) {
12603 D(p->level--);
12604 return NULL;
12605 }
12606 int _end_lineno = _token->end_lineno;
12607 UNUSED(_end_lineno); // Only used by EXTRA macro
12608 int _end_col_offset = _token->end_col_offset;
12609 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012610 _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 +010012611 if (_res == NULL && PyErr_Occurred()) {
12612 p->error_indicator = 1;
12613 D(p->level--);
12614 return NULL;
12615 }
12616 goto done;
12617 }
12618 p->mark = _mark;
12619 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12621 }
12622 { // '**' expression
12623 if (p->error_indicator) {
12624 D(p->level--);
12625 return NULL;
12626 }
12627 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12628 Token * _literal;
12629 expr_ty a;
12630 if (
12631 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12632 &&
12633 (a = expression_rule(p)) // expression
12634 )
12635 {
12636 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12637 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12638 if (_token == NULL) {
12639 D(p->level--);
12640 return NULL;
12641 }
12642 int _end_lineno = _token->end_lineno;
12643 UNUSED(_end_lineno); // Only used by EXTRA macro
12644 int _end_col_offset = _token->end_col_offset;
12645 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012646 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012647 if (_res == NULL && PyErr_Occurred()) {
12648 p->error_indicator = 1;
12649 D(p->level--);
12650 return NULL;
12651 }
12652 goto done;
12653 }
12654 p->mark = _mark;
12655 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
12657 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012658 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012659 if (p->error_indicator) {
12660 D(p->level--);
12661 return NULL;
12662 }
12663 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12664 void *invalid_kwarg_var;
12665 if (
12666 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12667 )
12668 {
12669 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12670 _res = invalid_kwarg_var;
12671 goto done;
12672 }
12673 p->mark = _mark;
12674 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12676 }
12677 _res = NULL;
12678 done:
12679 D(p->level--);
12680 return _res;
12681}
12682
12683// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12684static expr_ty
12685star_targets_rule(Parser *p)
12686{
12687 D(p->level++);
12688 if (p->error_indicator) {
12689 D(p->level--);
12690 return NULL;
12691 }
12692 expr_ty _res = NULL;
12693 int _mark = p->mark;
12694 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12695 p->error_indicator = 1;
12696 D(p->level--);
12697 return NULL;
12698 }
12699 int _start_lineno = p->tokens[_mark]->lineno;
12700 UNUSED(_start_lineno); // Only used by EXTRA macro
12701 int _start_col_offset = p->tokens[_mark]->col_offset;
12702 UNUSED(_start_col_offset); // Only used by EXTRA macro
12703 { // star_target !','
12704 if (p->error_indicator) {
12705 D(p->level--);
12706 return NULL;
12707 }
12708 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12709 expr_ty a;
12710 if (
12711 (a = star_target_rule(p)) // star_target
12712 &&
12713 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
12714 )
12715 {
12716 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12717 _res = a;
12718 if (_res == NULL && PyErr_Occurred()) {
12719 p->error_indicator = 1;
12720 D(p->level--);
12721 return NULL;
12722 }
12723 goto done;
12724 }
12725 p->mark = _mark;
12726 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
12728 }
12729 { // star_target ((',' star_target))* ','?
12730 if (p->error_indicator) {
12731 D(p->level--);
12732 return NULL;
12733 }
12734 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12735 void *_opt_var;
12736 UNUSED(_opt_var); // Silence compiler warnings
12737 expr_ty a;
12738 asdl_seq * b;
12739 if (
12740 (a = star_target_rule(p)) // star_target
12741 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012742 (b = _loop0_117_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012743 &&
12744 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12745 )
12746 {
12747 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12748 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12749 if (_token == NULL) {
12750 D(p->level--);
12751 return NULL;
12752 }
12753 int _end_lineno = _token->end_lineno;
12754 UNUSED(_end_lineno); // Only used by EXTRA macro
12755 int _end_col_offset = _token->end_col_offset;
12756 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012757 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012758 if (_res == NULL && PyErr_Occurred()) {
12759 p->error_indicator = 1;
12760 D(p->level--);
12761 return NULL;
12762 }
12763 goto done;
12764 }
12765 p->mark = _mark;
12766 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
12768 }
12769 _res = NULL;
12770 done:
12771 D(p->level--);
12772 return _res;
12773}
12774
12775// star_targets_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010012776static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012777star_targets_seq_rule(Parser *p)
12778{
12779 D(p->level++);
12780 if (p->error_indicator) {
12781 D(p->level--);
12782 return NULL;
12783 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010012784 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012785 int _mark = p->mark;
12786 { // ','.star_target+ ','?
12787 if (p->error_indicator) {
12788 D(p->level--);
12789 return NULL;
12790 }
12791 D(fprintf(stderr, "%*c> star_targets_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
12792 void *_opt_var;
12793 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010012794 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012795 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012796 (a = (asdl_expr_seq*)_gather_118_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012797 &&
12798 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12799 )
12800 {
12801 D(fprintf(stderr, "%*c+ star_targets_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
12802 _res = a;
12803 if (_res == NULL && PyErr_Occurred()) {
12804 p->error_indicator = 1;
12805 D(p->level--);
12806 return NULL;
12807 }
12808 goto done;
12809 }
12810 p->mark = _mark;
12811 D(fprintf(stderr, "%*c%s star_targets_seq[%d-%d]: %s failed!\n", p->level, ' ',
12812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
12813 }
12814 _res = NULL;
12815 done:
12816 D(p->level--);
12817 return _res;
12818}
12819
12820// star_target:
12821// | '*' (!'*' star_target)
12822// | t_primary '.' NAME !t_lookahead
12823// | t_primary '[' slices ']' !t_lookahead
12824// | star_atom
12825static expr_ty
12826star_target_rule(Parser *p)
12827{
12828 D(p->level++);
12829 if (p->error_indicator) {
12830 D(p->level--);
12831 return NULL;
12832 }
12833 expr_ty _res = NULL;
12834 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12835 D(p->level--);
12836 return _res;
12837 }
12838 int _mark = p->mark;
12839 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12840 p->error_indicator = 1;
12841 D(p->level--);
12842 return NULL;
12843 }
12844 int _start_lineno = p->tokens[_mark]->lineno;
12845 UNUSED(_start_lineno); // Only used by EXTRA macro
12846 int _start_col_offset = p->tokens[_mark]->col_offset;
12847 UNUSED(_start_col_offset); // Only used by EXTRA macro
12848 { // '*' (!'*' star_target)
12849 if (p->error_indicator) {
12850 D(p->level--);
12851 return NULL;
12852 }
12853 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12854 Token * _literal;
12855 void *a;
12856 if (
12857 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12858 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012859 (a = _tmp_120_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012860 )
12861 {
12862 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12863 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12864 if (_token == NULL) {
12865 D(p->level--);
12866 return NULL;
12867 }
12868 int _end_lineno = _token->end_lineno;
12869 UNUSED(_end_lineno); // Only used by EXTRA macro
12870 int _end_col_offset = _token->end_col_offset;
12871 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012872 _res = _Py_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012873 if (_res == NULL && PyErr_Occurred()) {
12874 p->error_indicator = 1;
12875 D(p->level--);
12876 return NULL;
12877 }
12878 goto done;
12879 }
12880 p->mark = _mark;
12881 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
12883 }
12884 { // t_primary '.' NAME !t_lookahead
12885 if (p->error_indicator) {
12886 D(p->level--);
12887 return NULL;
12888 }
12889 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
12890 Token * _literal;
12891 expr_ty a;
12892 expr_ty b;
12893 if (
12894 (a = t_primary_rule(p)) // t_primary
12895 &&
12896 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
12897 &&
12898 (b = _PyPegen_name_token(p)) // NAME
12899 &&
12900 _PyPegen_lookahead(0, t_lookahead_rule, p)
12901 )
12902 {
12903 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
12904 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12905 if (_token == NULL) {
12906 D(p->level--);
12907 return NULL;
12908 }
12909 int _end_lineno = _token->end_lineno;
12910 UNUSED(_end_lineno); // Only used by EXTRA macro
12911 int _end_col_offset = _token->end_col_offset;
12912 UNUSED(_end_col_offset); // Only used by EXTRA macro
12913 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
12914 if (_res == NULL && PyErr_Occurred()) {
12915 p->error_indicator = 1;
12916 D(p->level--);
12917 return NULL;
12918 }
12919 goto done;
12920 }
12921 p->mark = _mark;
12922 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
12924 }
12925 { // t_primary '[' slices ']' !t_lookahead
12926 if (p->error_indicator) {
12927 D(p->level--);
12928 return NULL;
12929 }
12930 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
12931 Token * _literal;
12932 Token * _literal_1;
12933 expr_ty a;
12934 expr_ty b;
12935 if (
12936 (a = t_primary_rule(p)) // t_primary
12937 &&
12938 (_literal = _PyPegen_expect_token(p, 9)) // token='['
12939 &&
12940 (b = slices_rule(p)) // slices
12941 &&
12942 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
12943 &&
12944 _PyPegen_lookahead(0, t_lookahead_rule, p)
12945 )
12946 {
12947 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
12948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12949 if (_token == NULL) {
12950 D(p->level--);
12951 return NULL;
12952 }
12953 int _end_lineno = _token->end_lineno;
12954 UNUSED(_end_lineno); // Only used by EXTRA macro
12955 int _end_col_offset = _token->end_col_offset;
12956 UNUSED(_end_col_offset); // Only used by EXTRA macro
12957 _res = _Py_Subscript ( a , b , Store , EXTRA );
12958 if (_res == NULL && PyErr_Occurred()) {
12959 p->error_indicator = 1;
12960 D(p->level--);
12961 return NULL;
12962 }
12963 goto done;
12964 }
12965 p->mark = _mark;
12966 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
12968 }
12969 { // star_atom
12970 if (p->error_indicator) {
12971 D(p->level--);
12972 return NULL;
12973 }
12974 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
12975 expr_ty star_atom_var;
12976 if (
12977 (star_atom_var = star_atom_rule(p)) // star_atom
12978 )
12979 {
12980 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
12981 _res = star_atom_var;
12982 goto done;
12983 }
12984 p->mark = _mark;
12985 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
12987 }
12988 _res = NULL;
12989 done:
12990 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
12991 D(p->level--);
12992 return _res;
12993}
12994
12995// star_atom:
12996// | NAME
12997// | '(' star_target ')'
12998// | '(' star_targets_seq? ')'
12999// | '[' star_targets_seq? ']'
13000static expr_ty
13001star_atom_rule(Parser *p)
13002{
13003 D(p->level++);
13004 if (p->error_indicator) {
13005 D(p->level--);
13006 return NULL;
13007 }
13008 expr_ty _res = NULL;
13009 int _mark = p->mark;
13010 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13011 p->error_indicator = 1;
13012 D(p->level--);
13013 return NULL;
13014 }
13015 int _start_lineno = p->tokens[_mark]->lineno;
13016 UNUSED(_start_lineno); // Only used by EXTRA macro
13017 int _start_col_offset = p->tokens[_mark]->col_offset;
13018 UNUSED(_start_col_offset); // Only used by EXTRA macro
13019 { // NAME
13020 if (p->error_indicator) {
13021 D(p->level--);
13022 return NULL;
13023 }
13024 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13025 expr_ty a;
13026 if (
13027 (a = _PyPegen_name_token(p)) // NAME
13028 )
13029 {
13030 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13031 _res = _PyPegen_set_expr_context ( p , a , Store );
13032 if (_res == NULL && PyErr_Occurred()) {
13033 p->error_indicator = 1;
13034 D(p->level--);
13035 return NULL;
13036 }
13037 goto done;
13038 }
13039 p->mark = _mark;
13040 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13042 }
13043 { // '(' star_target ')'
13044 if (p->error_indicator) {
13045 D(p->level--);
13046 return NULL;
13047 }
13048 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
13049 Token * _literal;
13050 Token * _literal_1;
13051 expr_ty a;
13052 if (
13053 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13054 &&
13055 (a = star_target_rule(p)) // star_target
13056 &&
13057 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13058 )
13059 {
13060 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
13061 _res = _PyPegen_set_expr_context ( p , a , Store );
13062 if (_res == NULL && PyErr_Occurred()) {
13063 p->error_indicator = 1;
13064 D(p->level--);
13065 return NULL;
13066 }
13067 goto done;
13068 }
13069 p->mark = _mark;
13070 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_target ')'"));
13072 }
13073 { // '(' star_targets_seq? ')'
13074 if (p->error_indicator) {
13075 D(p->level--);
13076 return NULL;
13077 }
13078 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_targets_seq? ')'"));
13079 Token * _literal;
13080 Token * _literal_1;
13081 void *a;
13082 if (
13083 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13084 &&
13085 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
13086 &&
13087 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13088 )
13089 {
13090 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_seq? ')'"));
13091 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13092 if (_token == NULL) {
13093 D(p->level--);
13094 return NULL;
13095 }
13096 int _end_lineno = _token->end_lineno;
13097 UNUSED(_end_lineno); // Only used by EXTRA macro
13098 int _end_col_offset = _token->end_col_offset;
13099 UNUSED(_end_col_offset); // Only used by EXTRA macro
13100 _res = _Py_Tuple ( a , Store , EXTRA );
13101 if (_res == NULL && PyErr_Occurred()) {
13102 p->error_indicator = 1;
13103 D(p->level--);
13104 return NULL;
13105 }
13106 goto done;
13107 }
13108 p->mark = _mark;
13109 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_seq? ')'"));
13111 }
13112 { // '[' star_targets_seq? ']'
13113 if (p->error_indicator) {
13114 D(p->level--);
13115 return NULL;
13116 }
13117 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_targets_seq? ']'"));
13118 Token * _literal;
13119 Token * _literal_1;
13120 void *a;
13121 if (
13122 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13123 &&
13124 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
13125 &&
13126 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13127 )
13128 {
13129 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_targets_seq? ']'"));
13130 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13131 if (_token == NULL) {
13132 D(p->level--);
13133 return NULL;
13134 }
13135 int _end_lineno = _token->end_lineno;
13136 UNUSED(_end_lineno); // Only used by EXTRA macro
13137 int _end_col_offset = _token->end_col_offset;
13138 UNUSED(_end_col_offset); // Only used by EXTRA macro
13139 _res = _Py_List ( a , Store , EXTRA );
13140 if (_res == NULL && PyErr_Occurred()) {
13141 p->error_indicator = 1;
13142 D(p->level--);
13143 return NULL;
13144 }
13145 goto done;
13146 }
13147 p->mark = _mark;
13148 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_seq? ']'"));
13150 }
13151 _res = NULL;
13152 done:
13153 D(p->level--);
13154 return _res;
13155}
13156
13157// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
13158static expr_ty
13159single_target_rule(Parser *p)
13160{
13161 D(p->level++);
13162 if (p->error_indicator) {
13163 D(p->level--);
13164 return NULL;
13165 }
13166 expr_ty _res = NULL;
13167 int _mark = p->mark;
13168 { // single_subscript_attribute_target
13169 if (p->error_indicator) {
13170 D(p->level--);
13171 return NULL;
13172 }
13173 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13174 expr_ty single_subscript_attribute_target_var;
13175 if (
13176 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
13177 )
13178 {
13179 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13180 _res = single_subscript_attribute_target_var;
13181 goto done;
13182 }
13183 p->mark = _mark;
13184 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
13186 }
13187 { // NAME
13188 if (p->error_indicator) {
13189 D(p->level--);
13190 return NULL;
13191 }
13192 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13193 expr_ty a;
13194 if (
13195 (a = _PyPegen_name_token(p)) // NAME
13196 )
13197 {
13198 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13199 _res = _PyPegen_set_expr_context ( p , a , Store );
13200 if (_res == NULL && PyErr_Occurred()) {
13201 p->error_indicator = 1;
13202 D(p->level--);
13203 return NULL;
13204 }
13205 goto done;
13206 }
13207 p->mark = _mark;
13208 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13210 }
13211 { // '(' single_target ')'
13212 if (p->error_indicator) {
13213 D(p->level--);
13214 return NULL;
13215 }
13216 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13217 Token * _literal;
13218 Token * _literal_1;
13219 expr_ty a;
13220 if (
13221 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13222 &&
13223 (a = single_target_rule(p)) // single_target
13224 &&
13225 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13226 )
13227 {
13228 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13229 _res = a;
13230 if (_res == NULL && PyErr_Occurred()) {
13231 p->error_indicator = 1;
13232 D(p->level--);
13233 return NULL;
13234 }
13235 goto done;
13236 }
13237 p->mark = _mark;
13238 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
13240 }
13241 _res = NULL;
13242 done:
13243 D(p->level--);
13244 return _res;
13245}
13246
13247// single_subscript_attribute_target:
13248// | t_primary '.' NAME !t_lookahead
13249// | t_primary '[' slices ']' !t_lookahead
13250static expr_ty
13251single_subscript_attribute_target_rule(Parser *p)
13252{
13253 D(p->level++);
13254 if (p->error_indicator) {
13255 D(p->level--);
13256 return NULL;
13257 }
13258 expr_ty _res = NULL;
13259 int _mark = p->mark;
13260 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13261 p->error_indicator = 1;
13262 D(p->level--);
13263 return NULL;
13264 }
13265 int _start_lineno = p->tokens[_mark]->lineno;
13266 UNUSED(_start_lineno); // Only used by EXTRA macro
13267 int _start_col_offset = p->tokens[_mark]->col_offset;
13268 UNUSED(_start_col_offset); // Only used by EXTRA macro
13269 { // t_primary '.' NAME !t_lookahead
13270 if (p->error_indicator) {
13271 D(p->level--);
13272 return NULL;
13273 }
13274 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13275 Token * _literal;
13276 expr_ty a;
13277 expr_ty b;
13278 if (
13279 (a = t_primary_rule(p)) // t_primary
13280 &&
13281 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13282 &&
13283 (b = _PyPegen_name_token(p)) // NAME
13284 &&
13285 _PyPegen_lookahead(0, t_lookahead_rule, p)
13286 )
13287 {
13288 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13289 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13290 if (_token == NULL) {
13291 D(p->level--);
13292 return NULL;
13293 }
13294 int _end_lineno = _token->end_lineno;
13295 UNUSED(_end_lineno); // Only used by EXTRA macro
13296 int _end_col_offset = _token->end_col_offset;
13297 UNUSED(_end_col_offset); // Only used by EXTRA macro
13298 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13299 if (_res == NULL && PyErr_Occurred()) {
13300 p->error_indicator = 1;
13301 D(p->level--);
13302 return NULL;
13303 }
13304 goto done;
13305 }
13306 p->mark = _mark;
13307 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13309 }
13310 { // t_primary '[' slices ']' !t_lookahead
13311 if (p->error_indicator) {
13312 D(p->level--);
13313 return NULL;
13314 }
13315 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13316 Token * _literal;
13317 Token * _literal_1;
13318 expr_ty a;
13319 expr_ty b;
13320 if (
13321 (a = t_primary_rule(p)) // t_primary
13322 &&
13323 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13324 &&
13325 (b = slices_rule(p)) // slices
13326 &&
13327 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13328 &&
13329 _PyPegen_lookahead(0, t_lookahead_rule, p)
13330 )
13331 {
13332 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13333 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13334 if (_token == NULL) {
13335 D(p->level--);
13336 return NULL;
13337 }
13338 int _end_lineno = _token->end_lineno;
13339 UNUSED(_end_lineno); // Only used by EXTRA macro
13340 int _end_col_offset = _token->end_col_offset;
13341 UNUSED(_end_col_offset); // Only used by EXTRA macro
13342 _res = _Py_Subscript ( a , b , Store , EXTRA );
13343 if (_res == NULL && PyErr_Occurred()) {
13344 p->error_indicator = 1;
13345 D(p->level--);
13346 return NULL;
13347 }
13348 goto done;
13349 }
13350 p->mark = _mark;
13351 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13353 }
13354 _res = NULL;
13355 done:
13356 D(p->level--);
13357 return _res;
13358}
13359
13360// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013361static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013362del_targets_rule(Parser *p)
13363{
13364 D(p->level++);
13365 if (p->error_indicator) {
13366 D(p->level--);
13367 return NULL;
13368 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013369 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013370 int _mark = p->mark;
13371 { // ','.del_target+ ','?
13372 if (p->error_indicator) {
13373 D(p->level--);
13374 return NULL;
13375 }
13376 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13377 void *_opt_var;
13378 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013379 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013380 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013381 (a = (asdl_expr_seq*)_gather_121_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013382 &&
13383 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13384 )
13385 {
13386 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13387 _res = a;
13388 if (_res == NULL && PyErr_Occurred()) {
13389 p->error_indicator = 1;
13390 D(p->level--);
13391 return NULL;
13392 }
13393 goto done;
13394 }
13395 p->mark = _mark;
13396 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
13398 }
13399 _res = NULL;
13400 done:
13401 D(p->level--);
13402 return _res;
13403}
13404
13405// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013406// | t_primary '.' NAME !t_lookahead
13407// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013408// | del_t_atom
13409static expr_ty
13410del_target_rule(Parser *p)
13411{
13412 D(p->level++);
13413 if (p->error_indicator) {
13414 D(p->level--);
13415 return NULL;
13416 }
13417 expr_ty _res = NULL;
13418 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13419 D(p->level--);
13420 return _res;
13421 }
13422 int _mark = p->mark;
13423 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13424 p->error_indicator = 1;
13425 D(p->level--);
13426 return NULL;
13427 }
13428 int _start_lineno = p->tokens[_mark]->lineno;
13429 UNUSED(_start_lineno); // Only used by EXTRA macro
13430 int _start_col_offset = p->tokens[_mark]->col_offset;
13431 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013432 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013433 if (p->error_indicator) {
13434 D(p->level--);
13435 return NULL;
13436 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013437 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 +010013438 Token * _literal;
13439 expr_ty a;
13440 expr_ty b;
13441 if (
13442 (a = t_primary_rule(p)) // t_primary
13443 &&
13444 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13445 &&
13446 (b = _PyPegen_name_token(p)) // NAME
13447 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013448 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013449 )
13450 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013451 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 +010013452 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13453 if (_token == NULL) {
13454 D(p->level--);
13455 return NULL;
13456 }
13457 int _end_lineno = _token->end_lineno;
13458 UNUSED(_end_lineno); // Only used by EXTRA macro
13459 int _end_col_offset = _token->end_col_offset;
13460 UNUSED(_end_col_offset); // Only used by EXTRA macro
13461 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13462 if (_res == NULL && PyErr_Occurred()) {
13463 p->error_indicator = 1;
13464 D(p->level--);
13465 return NULL;
13466 }
13467 goto done;
13468 }
13469 p->mark = _mark;
13470 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013472 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013473 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013474 if (p->error_indicator) {
13475 D(p->level--);
13476 return NULL;
13477 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013478 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 +010013479 Token * _literal;
13480 Token * _literal_1;
13481 expr_ty a;
13482 expr_ty b;
13483 if (
13484 (a = t_primary_rule(p)) // t_primary
13485 &&
13486 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13487 &&
13488 (b = slices_rule(p)) // slices
13489 &&
13490 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13491 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013492 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013493 )
13494 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013495 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 +010013496 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13497 if (_token == NULL) {
13498 D(p->level--);
13499 return NULL;
13500 }
13501 int _end_lineno = _token->end_lineno;
13502 UNUSED(_end_lineno); // Only used by EXTRA macro
13503 int _end_col_offset = _token->end_col_offset;
13504 UNUSED(_end_col_offset); // Only used by EXTRA macro
13505 _res = _Py_Subscript ( a , b , Del , EXTRA );
13506 if (_res == NULL && PyErr_Occurred()) {
13507 p->error_indicator = 1;
13508 D(p->level--);
13509 return NULL;
13510 }
13511 goto done;
13512 }
13513 p->mark = _mark;
13514 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013516 }
13517 { // del_t_atom
13518 if (p->error_indicator) {
13519 D(p->level--);
13520 return NULL;
13521 }
13522 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13523 expr_ty del_t_atom_var;
13524 if (
13525 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
13526 )
13527 {
13528 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13529 _res = del_t_atom_var;
13530 goto done;
13531 }
13532 p->mark = _mark;
13533 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
13535 }
13536 _res = NULL;
13537 done:
13538 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
13539 D(p->level--);
13540 return _res;
13541}
13542
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013543// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013544static expr_ty
13545del_t_atom_rule(Parser *p)
13546{
13547 D(p->level++);
13548 if (p->error_indicator) {
13549 D(p->level--);
13550 return NULL;
13551 }
13552 expr_ty _res = NULL;
13553 int _mark = p->mark;
13554 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13555 p->error_indicator = 1;
13556 D(p->level--);
13557 return NULL;
13558 }
13559 int _start_lineno = p->tokens[_mark]->lineno;
13560 UNUSED(_start_lineno); // Only used by EXTRA macro
13561 int _start_col_offset = p->tokens[_mark]->col_offset;
13562 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013563 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013564 if (p->error_indicator) {
13565 D(p->level--);
13566 return NULL;
13567 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013568 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013569 expr_ty a;
13570 if (
13571 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013572 )
13573 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013574 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 +010013575 _res = _PyPegen_set_expr_context ( p , a , Del );
13576 if (_res == NULL && PyErr_Occurred()) {
13577 p->error_indicator = 1;
13578 D(p->level--);
13579 return NULL;
13580 }
13581 goto done;
13582 }
13583 p->mark = _mark;
13584 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013586 }
13587 { // '(' del_target ')'
13588 if (p->error_indicator) {
13589 D(p->level--);
13590 return NULL;
13591 }
13592 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13593 Token * _literal;
13594 Token * _literal_1;
13595 expr_ty a;
13596 if (
13597 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13598 &&
13599 (a = del_target_rule(p)) // del_target
13600 &&
13601 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13602 )
13603 {
13604 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13605 _res = _PyPegen_set_expr_context ( p , a , Del );
13606 if (_res == NULL && PyErr_Occurred()) {
13607 p->error_indicator = 1;
13608 D(p->level--);
13609 return NULL;
13610 }
13611 goto done;
13612 }
13613 p->mark = _mark;
13614 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
13616 }
13617 { // '(' del_targets? ')'
13618 if (p->error_indicator) {
13619 D(p->level--);
13620 return NULL;
13621 }
13622 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13623 Token * _literal;
13624 Token * _literal_1;
13625 void *a;
13626 if (
13627 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13628 &&
13629 (a = del_targets_rule(p), 1) // del_targets?
13630 &&
13631 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13632 )
13633 {
13634 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13635 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13636 if (_token == NULL) {
13637 D(p->level--);
13638 return NULL;
13639 }
13640 int _end_lineno = _token->end_lineno;
13641 UNUSED(_end_lineno); // Only used by EXTRA macro
13642 int _end_col_offset = _token->end_col_offset;
13643 UNUSED(_end_col_offset); // Only used by EXTRA macro
13644 _res = _Py_Tuple ( a , Del , EXTRA );
13645 if (_res == NULL && PyErr_Occurred()) {
13646 p->error_indicator = 1;
13647 D(p->level--);
13648 return NULL;
13649 }
13650 goto done;
13651 }
13652 p->mark = _mark;
13653 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
13655 }
13656 { // '[' del_targets? ']'
13657 if (p->error_indicator) {
13658 D(p->level--);
13659 return NULL;
13660 }
13661 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13662 Token * _literal;
13663 Token * _literal_1;
13664 void *a;
13665 if (
13666 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13667 &&
13668 (a = del_targets_rule(p), 1) // del_targets?
13669 &&
13670 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13671 )
13672 {
13673 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13674 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13675 if (_token == NULL) {
13676 D(p->level--);
13677 return NULL;
13678 }
13679 int _end_lineno = _token->end_lineno;
13680 UNUSED(_end_lineno); // Only used by EXTRA macro
13681 int _end_col_offset = _token->end_col_offset;
13682 UNUSED(_end_col_offset); // Only used by EXTRA macro
13683 _res = _Py_List ( a , Del , EXTRA );
13684 if (_res == NULL && PyErr_Occurred()) {
13685 p->error_indicator = 1;
13686 D(p->level--);
13687 return NULL;
13688 }
13689 goto done;
13690 }
13691 p->mark = _mark;
13692 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
13694 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013695 _res = NULL;
13696 done:
13697 D(p->level--);
13698 return _res;
13699}
13700
13701// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013702static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013703targets_rule(Parser *p)
13704{
13705 D(p->level++);
13706 if (p->error_indicator) {
13707 D(p->level--);
13708 return NULL;
13709 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013710 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013711 int _mark = p->mark;
13712 { // ','.target+ ','?
13713 if (p->error_indicator) {
13714 D(p->level--);
13715 return NULL;
13716 }
13717 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13718 void *_opt_var;
13719 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013720 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013721 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013722 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013723 &&
13724 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13725 )
13726 {
13727 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13728 _res = a;
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 targets[%d-%d]: %s failed!\n", p->level, ' ',
13738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
13739 }
13740 _res = NULL;
13741 done:
13742 D(p->level--);
13743 return _res;
13744}
13745
13746// target:
13747// | t_primary '.' NAME !t_lookahead
13748// | t_primary '[' slices ']' !t_lookahead
13749// | t_atom
13750static expr_ty
13751target_rule(Parser *p)
13752{
13753 D(p->level++);
13754 if (p->error_indicator) {
13755 D(p->level--);
13756 return NULL;
13757 }
13758 expr_ty _res = NULL;
13759 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13760 D(p->level--);
13761 return _res;
13762 }
13763 int _mark = p->mark;
13764 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13765 p->error_indicator = 1;
13766 D(p->level--);
13767 return NULL;
13768 }
13769 int _start_lineno = p->tokens[_mark]->lineno;
13770 UNUSED(_start_lineno); // Only used by EXTRA macro
13771 int _start_col_offset = p->tokens[_mark]->col_offset;
13772 UNUSED(_start_col_offset); // Only used by EXTRA macro
13773 { // t_primary '.' NAME !t_lookahead
13774 if (p->error_indicator) {
13775 D(p->level--);
13776 return NULL;
13777 }
13778 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13779 Token * _literal;
13780 expr_ty a;
13781 expr_ty b;
13782 if (
13783 (a = t_primary_rule(p)) // t_primary
13784 &&
13785 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13786 &&
13787 (b = _PyPegen_name_token(p)) // NAME
13788 &&
13789 _PyPegen_lookahead(0, t_lookahead_rule, p)
13790 )
13791 {
13792 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13793 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13794 if (_token == NULL) {
13795 D(p->level--);
13796 return NULL;
13797 }
13798 int _end_lineno = _token->end_lineno;
13799 UNUSED(_end_lineno); // Only used by EXTRA macro
13800 int _end_col_offset = _token->end_col_offset;
13801 UNUSED(_end_col_offset); // Only used by EXTRA macro
13802 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13803 if (_res == NULL && PyErr_Occurred()) {
13804 p->error_indicator = 1;
13805 D(p->level--);
13806 return NULL;
13807 }
13808 goto done;
13809 }
13810 p->mark = _mark;
13811 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13813 }
13814 { // t_primary '[' slices ']' !t_lookahead
13815 if (p->error_indicator) {
13816 D(p->level--);
13817 return NULL;
13818 }
13819 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13820 Token * _literal;
13821 Token * _literal_1;
13822 expr_ty a;
13823 expr_ty b;
13824 if (
13825 (a = t_primary_rule(p)) // t_primary
13826 &&
13827 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13828 &&
13829 (b = slices_rule(p)) // slices
13830 &&
13831 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13832 &&
13833 _PyPegen_lookahead(0, t_lookahead_rule, p)
13834 )
13835 {
13836 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13837 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13838 if (_token == NULL) {
13839 D(p->level--);
13840 return NULL;
13841 }
13842 int _end_lineno = _token->end_lineno;
13843 UNUSED(_end_lineno); // Only used by EXTRA macro
13844 int _end_col_offset = _token->end_col_offset;
13845 UNUSED(_end_col_offset); // Only used by EXTRA macro
13846 _res = _Py_Subscript ( a , b , Store , EXTRA );
13847 if (_res == NULL && PyErr_Occurred()) {
13848 p->error_indicator = 1;
13849 D(p->level--);
13850 return NULL;
13851 }
13852 goto done;
13853 }
13854 p->mark = _mark;
13855 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13857 }
13858 { // t_atom
13859 if (p->error_indicator) {
13860 D(p->level--);
13861 return NULL;
13862 }
13863 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
13864 expr_ty t_atom_var;
13865 if (
13866 (t_atom_var = t_atom_rule(p)) // t_atom
13867 )
13868 {
13869 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
13870 _res = t_atom_var;
13871 goto done;
13872 }
13873 p->mark = _mark;
13874 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
13876 }
13877 _res = NULL;
13878 done:
13879 _PyPegen_insert_memo(p, _mark, target_type, _res);
13880 D(p->level--);
13881 return _res;
13882}
13883
13884// Left-recursive
13885// t_primary:
13886// | t_primary '.' NAME &t_lookahead
13887// | t_primary '[' slices ']' &t_lookahead
13888// | t_primary genexp &t_lookahead
13889// | t_primary '(' arguments? ')' &t_lookahead
13890// | atom &t_lookahead
13891static expr_ty t_primary_raw(Parser *);
13892static expr_ty
13893t_primary_rule(Parser *p)
13894{
13895 D(p->level++);
13896 expr_ty _res = NULL;
13897 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
13898 D(p->level--);
13899 return _res;
13900 }
13901 int _mark = p->mark;
13902 int _resmark = p->mark;
13903 while (1) {
13904 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
13905 if (tmpvar_8) {
13906 D(p->level--);
13907 return _res;
13908 }
13909 p->mark = _mark;
13910 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013911 if (p->error_indicator)
13912 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013913 if (_raw == NULL || p->mark <= _resmark)
13914 break;
13915 _resmark = p->mark;
13916 _res = _raw;
13917 }
13918 p->mark = _resmark;
13919 D(p->level--);
13920 return _res;
13921}
13922static expr_ty
13923t_primary_raw(Parser *p)
13924{
13925 D(p->level++);
13926 if (p->error_indicator) {
13927 D(p->level--);
13928 return NULL;
13929 }
13930 expr_ty _res = NULL;
13931 int _mark = p->mark;
13932 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13933 p->error_indicator = 1;
13934 D(p->level--);
13935 return NULL;
13936 }
13937 int _start_lineno = p->tokens[_mark]->lineno;
13938 UNUSED(_start_lineno); // Only used by EXTRA macro
13939 int _start_col_offset = p->tokens[_mark]->col_offset;
13940 UNUSED(_start_col_offset); // Only used by EXTRA macro
13941 { // t_primary '.' NAME &t_lookahead
13942 if (p->error_indicator) {
13943 D(p->level--);
13944 return NULL;
13945 }
13946 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
13947 Token * _literal;
13948 expr_ty a;
13949 expr_ty b;
13950 if (
13951 (a = t_primary_rule(p)) // t_primary
13952 &&
13953 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13954 &&
13955 (b = _PyPegen_name_token(p)) // NAME
13956 &&
13957 _PyPegen_lookahead(1, t_lookahead_rule, p)
13958 )
13959 {
13960 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
13961 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13962 if (_token == NULL) {
13963 D(p->level--);
13964 return NULL;
13965 }
13966 int _end_lineno = _token->end_lineno;
13967 UNUSED(_end_lineno); // Only used by EXTRA macro
13968 int _end_col_offset = _token->end_col_offset;
13969 UNUSED(_end_col_offset); // Only used by EXTRA macro
13970 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
13971 if (_res == NULL && PyErr_Occurred()) {
13972 p->error_indicator = 1;
13973 D(p->level--);
13974 return NULL;
13975 }
13976 goto done;
13977 }
13978 p->mark = _mark;
13979 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
13980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
13981 }
13982 { // t_primary '[' slices ']' &t_lookahead
13983 if (p->error_indicator) {
13984 D(p->level--);
13985 return NULL;
13986 }
13987 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
13988 Token * _literal;
13989 Token * _literal_1;
13990 expr_ty a;
13991 expr_ty b;
13992 if (
13993 (a = t_primary_rule(p)) // t_primary
13994 &&
13995 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13996 &&
13997 (b = slices_rule(p)) // slices
13998 &&
13999 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14000 &&
14001 _PyPegen_lookahead(1, t_lookahead_rule, p)
14002 )
14003 {
14004 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14005 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14006 if (_token == NULL) {
14007 D(p->level--);
14008 return NULL;
14009 }
14010 int _end_lineno = _token->end_lineno;
14011 UNUSED(_end_lineno); // Only used by EXTRA macro
14012 int _end_col_offset = _token->end_col_offset;
14013 UNUSED(_end_col_offset); // Only used by EXTRA macro
14014 _res = _Py_Subscript ( a , b , Load , EXTRA );
14015 if (_res == NULL && PyErr_Occurred()) {
14016 p->error_indicator = 1;
14017 D(p->level--);
14018 return NULL;
14019 }
14020 goto done;
14021 }
14022 p->mark = _mark;
14023 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14025 }
14026 { // t_primary genexp &t_lookahead
14027 if (p->error_indicator) {
14028 D(p->level--);
14029 return NULL;
14030 }
14031 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14032 expr_ty a;
14033 expr_ty b;
14034 if (
14035 (a = t_primary_rule(p)) // t_primary
14036 &&
14037 (b = genexp_rule(p)) // genexp
14038 &&
14039 _PyPegen_lookahead(1, t_lookahead_rule, p)
14040 )
14041 {
14042 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14043 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14044 if (_token == NULL) {
14045 D(p->level--);
14046 return NULL;
14047 }
14048 int _end_lineno = _token->end_lineno;
14049 UNUSED(_end_lineno); // Only used by EXTRA macro
14050 int _end_col_offset = _token->end_col_offset;
14051 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014052 _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 +010014053 if (_res == NULL && PyErr_Occurred()) {
14054 p->error_indicator = 1;
14055 D(p->level--);
14056 return NULL;
14057 }
14058 goto done;
14059 }
14060 p->mark = _mark;
14061 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
14063 }
14064 { // t_primary '(' arguments? ')' &t_lookahead
14065 if (p->error_indicator) {
14066 D(p->level--);
14067 return NULL;
14068 }
14069 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14070 Token * _literal;
14071 Token * _literal_1;
14072 expr_ty a;
14073 void *b;
14074 if (
14075 (a = t_primary_rule(p)) // t_primary
14076 &&
14077 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14078 &&
14079 (b = arguments_rule(p), 1) // arguments?
14080 &&
14081 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14082 &&
14083 _PyPegen_lookahead(1, t_lookahead_rule, p)
14084 )
14085 {
14086 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14087 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14088 if (_token == NULL) {
14089 D(p->level--);
14090 return NULL;
14091 }
14092 int _end_lineno = _token->end_lineno;
14093 UNUSED(_end_lineno); // Only used by EXTRA macro
14094 int _end_col_offset = _token->end_col_offset;
14095 UNUSED(_end_col_offset); // Only used by EXTRA macro
14096 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14097 if (_res == NULL && PyErr_Occurred()) {
14098 p->error_indicator = 1;
14099 D(p->level--);
14100 return NULL;
14101 }
14102 goto done;
14103 }
14104 p->mark = _mark;
14105 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14107 }
14108 { // atom &t_lookahead
14109 if (p->error_indicator) {
14110 D(p->level--);
14111 return NULL;
14112 }
14113 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14114 expr_ty a;
14115 if (
14116 (a = atom_rule(p)) // atom
14117 &&
14118 _PyPegen_lookahead(1, t_lookahead_rule, p)
14119 )
14120 {
14121 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14122 _res = a;
14123 if (_res == NULL && PyErr_Occurred()) {
14124 p->error_indicator = 1;
14125 D(p->level--);
14126 return NULL;
14127 }
14128 goto done;
14129 }
14130 p->mark = _mark;
14131 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
14133 }
14134 _res = NULL;
14135 done:
14136 D(p->level--);
14137 return _res;
14138}
14139
14140// t_lookahead: '(' | '[' | '.'
14141static void *
14142t_lookahead_rule(Parser *p)
14143{
14144 D(p->level++);
14145 if (p->error_indicator) {
14146 D(p->level--);
14147 return NULL;
14148 }
14149 void * _res = NULL;
14150 int _mark = p->mark;
14151 { // '('
14152 if (p->error_indicator) {
14153 D(p->level--);
14154 return NULL;
14155 }
14156 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
14157 Token * _literal;
14158 if (
14159 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14160 )
14161 {
14162 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
14163 _res = _literal;
14164 goto done;
14165 }
14166 p->mark = _mark;
14167 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
14169 }
14170 { // '['
14171 if (p->error_indicator) {
14172 D(p->level--);
14173 return NULL;
14174 }
14175 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
14176 Token * _literal;
14177 if (
14178 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14179 )
14180 {
14181 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
14182 _res = _literal;
14183 goto done;
14184 }
14185 p->mark = _mark;
14186 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
14188 }
14189 { // '.'
14190 if (p->error_indicator) {
14191 D(p->level--);
14192 return NULL;
14193 }
14194 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
14195 Token * _literal;
14196 if (
14197 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14198 )
14199 {
14200 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
14201 _res = _literal;
14202 goto done;
14203 }
14204 p->mark = _mark;
14205 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
14207 }
14208 _res = NULL;
14209 done:
14210 D(p->level--);
14211 return _res;
14212}
14213
14214// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14215static expr_ty
14216t_atom_rule(Parser *p)
14217{
14218 D(p->level++);
14219 if (p->error_indicator) {
14220 D(p->level--);
14221 return NULL;
14222 }
14223 expr_ty _res = NULL;
14224 int _mark = p->mark;
14225 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14226 p->error_indicator = 1;
14227 D(p->level--);
14228 return NULL;
14229 }
14230 int _start_lineno = p->tokens[_mark]->lineno;
14231 UNUSED(_start_lineno); // Only used by EXTRA macro
14232 int _start_col_offset = p->tokens[_mark]->col_offset;
14233 UNUSED(_start_col_offset); // Only used by EXTRA macro
14234 { // NAME
14235 if (p->error_indicator) {
14236 D(p->level--);
14237 return NULL;
14238 }
14239 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14240 expr_ty a;
14241 if (
14242 (a = _PyPegen_name_token(p)) // NAME
14243 )
14244 {
14245 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14246 _res = _PyPegen_set_expr_context ( p , a , Store );
14247 if (_res == NULL && PyErr_Occurred()) {
14248 p->error_indicator = 1;
14249 D(p->level--);
14250 return NULL;
14251 }
14252 goto done;
14253 }
14254 p->mark = _mark;
14255 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14257 }
14258 { // '(' target ')'
14259 if (p->error_indicator) {
14260 D(p->level--);
14261 return NULL;
14262 }
14263 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14264 Token * _literal;
14265 Token * _literal_1;
14266 expr_ty a;
14267 if (
14268 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14269 &&
14270 (a = target_rule(p)) // target
14271 &&
14272 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14273 )
14274 {
14275 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14276 _res = _PyPegen_set_expr_context ( p , a , Store );
14277 if (_res == NULL && PyErr_Occurred()) {
14278 p->error_indicator = 1;
14279 D(p->level--);
14280 return NULL;
14281 }
14282 goto done;
14283 }
14284 p->mark = _mark;
14285 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
14287 }
14288 { // '(' targets? ')'
14289 if (p->error_indicator) {
14290 D(p->level--);
14291 return NULL;
14292 }
14293 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14294 Token * _literal;
14295 Token * _literal_1;
14296 void *b;
14297 if (
14298 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14299 &&
14300 (b = targets_rule(p), 1) // targets?
14301 &&
14302 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14303 )
14304 {
14305 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14306 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14307 if (_token == NULL) {
14308 D(p->level--);
14309 return NULL;
14310 }
14311 int _end_lineno = _token->end_lineno;
14312 UNUSED(_end_lineno); // Only used by EXTRA macro
14313 int _end_col_offset = _token->end_col_offset;
14314 UNUSED(_end_col_offset); // Only used by EXTRA macro
14315 _res = _Py_Tuple ( b , Store , EXTRA );
14316 if (_res == NULL && PyErr_Occurred()) {
14317 p->error_indicator = 1;
14318 D(p->level--);
14319 return NULL;
14320 }
14321 goto done;
14322 }
14323 p->mark = _mark;
14324 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
14326 }
14327 { // '[' targets? ']'
14328 if (p->error_indicator) {
14329 D(p->level--);
14330 return NULL;
14331 }
14332 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14333 Token * _literal;
14334 Token * _literal_1;
14335 void *b;
14336 if (
14337 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14338 &&
14339 (b = targets_rule(p), 1) // targets?
14340 &&
14341 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14342 )
14343 {
14344 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14345 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14346 if (_token == NULL) {
14347 D(p->level--);
14348 return NULL;
14349 }
14350 int _end_lineno = _token->end_lineno;
14351 UNUSED(_end_lineno); // Only used by EXTRA macro
14352 int _end_col_offset = _token->end_col_offset;
14353 UNUSED(_end_col_offset); // Only used by EXTRA macro
14354 _res = _Py_List ( b , Store , EXTRA );
14355 if (_res == NULL && PyErr_Occurred()) {
14356 p->error_indicator = 1;
14357 D(p->level--);
14358 return NULL;
14359 }
14360 goto done;
14361 }
14362 p->mark = _mark;
14363 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
14365 }
14366 _res = NULL;
14367 done:
14368 D(p->level--);
14369 return _res;
14370}
14371
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014372// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014373// | args ',' '*'
14374// | expression for_if_clauses ',' [args | expression for_if_clauses]
14375// | args for_if_clauses
14376// | args ',' expression for_if_clauses
14377// | args ',' args
14378static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014379invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014380{
14381 D(p->level++);
14382 if (p->error_indicator) {
14383 D(p->level--);
14384 return NULL;
14385 }
14386 void * _res = NULL;
14387 int _mark = p->mark;
14388 { // args ',' '*'
14389 if (p->error_indicator) {
14390 D(p->level--);
14391 return NULL;
14392 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014393 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014394 Token * _literal;
14395 Token * _literal_1;
14396 expr_ty args_var;
14397 if (
14398 (args_var = args_rule(p)) // args
14399 &&
14400 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14401 &&
14402 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
14403 )
14404 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014405 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014406 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14407 if (_res == NULL && PyErr_Occurred()) {
14408 p->error_indicator = 1;
14409 D(p->level--);
14410 return NULL;
14411 }
14412 goto done;
14413 }
14414 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014415 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
14417 }
14418 { // expression for_if_clauses ',' [args | expression for_if_clauses]
14419 if (p->error_indicator) {
14420 D(p->level--);
14421 return NULL;
14422 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014423 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 +010014424 Token * _literal;
14425 void *_opt_var;
14426 UNUSED(_opt_var); // Silence compiler warnings
14427 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014428 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014429 if (
14430 (a = expression_rule(p)) // expression
14431 &&
14432 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14433 &&
14434 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14435 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014436 (_opt_var = _tmp_125_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014437 )
14438 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014439 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 +010014440 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14441 if (_res == NULL && PyErr_Occurred()) {
14442 p->error_indicator = 1;
14443 D(p->level--);
14444 return NULL;
14445 }
14446 goto done;
14447 }
14448 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014449 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
14451 }
14452 { // args for_if_clauses
14453 if (p->error_indicator) {
14454 D(p->level--);
14455 return NULL;
14456 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014457 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 +010014458 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014459 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014460 if (
14461 (a = args_rule(p)) // args
14462 &&
14463 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14464 )
14465 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014466 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 +010014467 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14468 if (_res == NULL && PyErr_Occurred()) {
14469 p->error_indicator = 1;
14470 D(p->level--);
14471 return NULL;
14472 }
14473 goto done;
14474 }
14475 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014476 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
14478 }
14479 { // args ',' expression for_if_clauses
14480 if (p->error_indicator) {
14481 D(p->level--);
14482 return NULL;
14483 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014484 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 +010014485 Token * _literal;
14486 expr_ty a;
14487 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014488 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014489 if (
14490 (args_var = args_rule(p)) // args
14491 &&
14492 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14493 &&
14494 (a = expression_rule(p)) // expression
14495 &&
14496 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14497 )
14498 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014499 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 +010014500 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14501 if (_res == NULL && PyErr_Occurred()) {
14502 p->error_indicator = 1;
14503 D(p->level--);
14504 return NULL;
14505 }
14506 goto done;
14507 }
14508 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014509 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
14511 }
14512 { // args ',' args
14513 if (p->error_indicator) {
14514 D(p->level--);
14515 return NULL;
14516 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014517 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014518 Token * _literal;
14519 expr_ty a;
14520 expr_ty args_var;
14521 if (
14522 (a = args_rule(p)) // args
14523 &&
14524 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14525 &&
14526 (args_var = args_rule(p)) // args
14527 )
14528 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014529 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 +010014530 _res = _PyPegen_arguments_parsing_error ( p , a );
14531 if (_res == NULL && PyErr_Occurred()) {
14532 p->error_indicator = 1;
14533 D(p->level--);
14534 return NULL;
14535 }
14536 goto done;
14537 }
14538 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014539 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
14541 }
14542 _res = NULL;
14543 done:
14544 D(p->level--);
14545 return _res;
14546}
14547
14548// invalid_kwarg: expression '='
14549static void *
14550invalid_kwarg_rule(Parser *p)
14551{
14552 D(p->level++);
14553 if (p->error_indicator) {
14554 D(p->level--);
14555 return NULL;
14556 }
14557 void * _res = NULL;
14558 int _mark = p->mark;
14559 { // expression '='
14560 if (p->error_indicator) {
14561 D(p->level--);
14562 return NULL;
14563 }
14564 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014565 Token * a;
14566 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014567 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014568 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014569 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014570 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014571 )
14572 {
14573 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
14574 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
14575 if (_res == NULL && PyErr_Occurred()) {
14576 p->error_indicator = 1;
14577 D(p->level--);
14578 return NULL;
14579 }
14580 goto done;
14581 }
14582 p->mark = _mark;
14583 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
14585 }
14586 _res = NULL;
14587 done:
14588 D(p->level--);
14589 return _res;
14590}
14591
14592// invalid_named_expression: expression ':=' expression
14593static void *
14594invalid_named_expression_rule(Parser *p)
14595{
14596 D(p->level++);
14597 if (p->error_indicator) {
14598 D(p->level--);
14599 return NULL;
14600 }
14601 void * _res = NULL;
14602 int _mark = p->mark;
14603 { // expression ':=' expression
14604 if (p->error_indicator) {
14605 D(p->level--);
14606 return NULL;
14607 }
14608 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14609 Token * _literal;
14610 expr_ty a;
14611 expr_ty expression_var;
14612 if (
14613 (a = expression_rule(p)) // expression
14614 &&
14615 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
14616 &&
14617 (expression_var = expression_rule(p)) // expression
14618 )
14619 {
14620 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14621 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
14622 if (_res == NULL && PyErr_Occurred()) {
14623 p->error_indicator = 1;
14624 D(p->level--);
14625 return NULL;
14626 }
14627 goto done;
14628 }
14629 p->mark = _mark;
14630 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
14632 }
14633 _res = NULL;
14634 done:
14635 D(p->level--);
14636 return _res;
14637}
14638
14639// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014640// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014641// | star_named_expression ',' star_named_expressions* ':' expression
14642// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014643// | ((star_targets '='))* star_expressions '='
14644// | ((star_targets '='))* yield_expr '='
14645// | star_expressions augassign (yield_expr | star_expressions)
14646static void *
14647invalid_assignment_rule(Parser *p)
14648{
14649 D(p->level++);
14650 if (p->error_indicator) {
14651 D(p->level--);
14652 return NULL;
14653 }
14654 void * _res = NULL;
14655 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014656 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014657 if (p->error_indicator) {
14658 D(p->level--);
14659 return NULL;
14660 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014661 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 +010014662 Token * _literal;
14663 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014664 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014665 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014666 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014667 &&
14668 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014669 &&
14670 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014671 )
14672 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014673 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14674 _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 +010014675 if (_res == NULL && PyErr_Occurred()) {
14676 p->error_indicator = 1;
14677 D(p->level--);
14678 return NULL;
14679 }
14680 goto done;
14681 }
14682 p->mark = _mark;
14683 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014685 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014686 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014687 if (p->error_indicator) {
14688 D(p->level--);
14689 return NULL;
14690 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014691 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 +010014692 Token * _literal;
14693 Token * _literal_1;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014694 asdl_seq * _loop0_126_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014695 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014696 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014697 if (
14698 (a = star_named_expression_rule(p)) // star_named_expression
14699 &&
14700 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14701 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014702 (_loop0_126_var = _loop0_126_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014703 &&
14704 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014705 &&
14706 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014707 )
14708 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014709 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 +010014710 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
14711 if (_res == NULL && PyErr_Occurred()) {
14712 p->error_indicator = 1;
14713 D(p->level--);
14714 return NULL;
14715 }
14716 goto done;
14717 }
14718 p->mark = _mark;
14719 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014721 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014722 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014723 if (p->error_indicator) {
14724 D(p->level--);
14725 return NULL;
14726 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014727 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014728 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014729 expr_ty a;
14730 expr_ty expression_var;
14731 if (
14732 (a = expression_rule(p)) // expression
14733 &&
14734 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14735 &&
14736 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014737 )
14738 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014739 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 +010014740 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
14741 if (_res == NULL && PyErr_Occurred()) {
14742 p->error_indicator = 1;
14743 D(p->level--);
14744 return NULL;
14745 }
14746 goto done;
14747 }
14748 p->mark = _mark;
14749 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014751 }
14752 { // ((star_targets '='))* star_expressions '='
14753 if (p->error_indicator) {
14754 D(p->level--);
14755 return NULL;
14756 }
14757 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14758 Token * _literal;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014759 asdl_seq * _loop0_127_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014760 expr_ty a;
14761 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014762 (_loop0_127_var = _loop0_127_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014763 &&
14764 (a = star_expressions_rule(p)) // star_expressions
14765 &&
14766 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14767 )
14768 {
14769 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 +030014770 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014771 if (_res == NULL && PyErr_Occurred()) {
14772 p->error_indicator = 1;
14773 D(p->level--);
14774 return NULL;
14775 }
14776 goto done;
14777 }
14778 p->mark = _mark;
14779 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14781 }
14782 { // ((star_targets '='))* yield_expr '='
14783 if (p->error_indicator) {
14784 D(p->level--);
14785 return NULL;
14786 }
14787 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14788 Token * _literal;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014789 asdl_seq * _loop0_128_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014790 expr_ty a;
14791 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014792 (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014793 &&
14794 (a = yield_expr_rule(p)) // yield_expr
14795 &&
14796 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14797 )
14798 {
14799 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14800 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14801 if (_res == NULL && PyErr_Occurred()) {
14802 p->error_indicator = 1;
14803 D(p->level--);
14804 return NULL;
14805 }
14806 goto done;
14807 }
14808 p->mark = _mark;
14809 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14811 }
14812 { // star_expressions augassign (yield_expr | star_expressions)
14813 if (p->error_indicator) {
14814 D(p->level--);
14815 return NULL;
14816 }
14817 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014818 void *_tmp_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014819 expr_ty a;
14820 AugOperator* augassign_var;
14821 if (
14822 (a = star_expressions_rule(p)) // star_expressions
14823 &&
14824 (augassign_var = augassign_rule(p)) // augassign
14825 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014826 (_tmp_129_var = _tmp_129_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014827 )
14828 {
14829 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
14830 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
14831 if (_res == NULL && PyErr_Occurred()) {
14832 p->error_indicator = 1;
14833 D(p->level--);
14834 return NULL;
14835 }
14836 goto done;
14837 }
14838 p->mark = _mark;
14839 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
14841 }
14842 _res = NULL;
14843 done:
14844 D(p->level--);
14845 return _res;
14846}
14847
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014848// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
14849static expr_ty
14850invalid_ann_assign_target_rule(Parser *p)
14851{
14852 D(p->level++);
14853 if (p->error_indicator) {
14854 D(p->level--);
14855 return NULL;
14856 }
14857 expr_ty _res = NULL;
14858 int _mark = p->mark;
14859 { // list
14860 if (p->error_indicator) {
14861 D(p->level--);
14862 return NULL;
14863 }
14864 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
14865 expr_ty list_var;
14866 if (
14867 (list_var = list_rule(p)) // list
14868 )
14869 {
14870 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
14871 _res = list_var;
14872 goto done;
14873 }
14874 p->mark = _mark;
14875 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
14877 }
14878 { // tuple
14879 if (p->error_indicator) {
14880 D(p->level--);
14881 return NULL;
14882 }
14883 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
14884 expr_ty tuple_var;
14885 if (
14886 (tuple_var = tuple_rule(p)) // tuple
14887 )
14888 {
14889 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
14890 _res = tuple_var;
14891 goto done;
14892 }
14893 p->mark = _mark;
14894 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
14896 }
14897 { // '(' invalid_ann_assign_target ')'
14898 if (p->error_indicator) {
14899 D(p->level--);
14900 return NULL;
14901 }
14902 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14903 Token * _literal;
14904 Token * _literal_1;
14905 expr_ty a;
14906 if (
14907 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14908 &&
14909 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
14910 &&
14911 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14912 )
14913 {
14914 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14915 _res = a;
14916 if (_res == NULL && PyErr_Occurred()) {
14917 p->error_indicator = 1;
14918 D(p->level--);
14919 return NULL;
14920 }
14921 goto done;
14922 }
14923 p->mark = _mark;
14924 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14926 }
14927 _res = NULL;
14928 done:
14929 D(p->level--);
14930 return _res;
14931}
14932
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014933// invalid_del_stmt: 'del' star_expressions
14934static void *
14935invalid_del_stmt_rule(Parser *p)
14936{
14937 D(p->level++);
14938 if (p->error_indicator) {
14939 D(p->level--);
14940 return NULL;
14941 }
14942 void * _res = NULL;
14943 int _mark = p->mark;
14944 { // 'del' star_expressions
14945 if (p->error_indicator) {
14946 D(p->level--);
14947 return NULL;
14948 }
14949 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
14950 Token * _keyword;
14951 expr_ty a;
14952 if (
14953 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
14954 &&
14955 (a = star_expressions_rule(p)) // star_expressions
14956 )
14957 {
14958 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 +030014959 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014960 if (_res == NULL && PyErr_Occurred()) {
14961 p->error_indicator = 1;
14962 D(p->level--);
14963 return NULL;
14964 }
14965 goto done;
14966 }
14967 p->mark = _mark;
14968 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
14969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
14970 }
14971 _res = NULL;
14972 done:
14973 D(p->level--);
14974 return _res;
14975}
14976
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014977// invalid_block: NEWLINE !INDENT
14978static void *
14979invalid_block_rule(Parser *p)
14980{
14981 D(p->level++);
14982 if (p->error_indicator) {
14983 D(p->level--);
14984 return NULL;
14985 }
14986 void * _res = NULL;
14987 int _mark = p->mark;
14988 { // NEWLINE !INDENT
14989 if (p->error_indicator) {
14990 D(p->level--);
14991 return NULL;
14992 }
14993 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
14994 Token * newline_var;
14995 if (
14996 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
14997 &&
14998 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
14999 )
15000 {
15001 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15002 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15003 if (_res == NULL && PyErr_Occurred()) {
15004 p->error_indicator = 1;
15005 D(p->level--);
15006 return NULL;
15007 }
15008 goto done;
15009 }
15010 p->mark = _mark;
15011 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
15013 }
15014 _res = NULL;
15015 done:
15016 D(p->level--);
15017 return _res;
15018}
15019
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020015020// Left-recursive
15021// invalid_primary: primary '{'
15022static void *
15023invalid_primary_rule(Parser *p)
15024{
15025 D(p->level++);
15026 if (p->error_indicator) {
15027 D(p->level--);
15028 return NULL;
15029 }
15030 void * _res = NULL;
15031 int _mark = p->mark;
15032 { // primary '{'
15033 if (p->error_indicator) {
15034 D(p->level--);
15035 return NULL;
15036 }
15037 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15038 Token * a;
15039 expr_ty primary_var;
15040 if (
15041 (primary_var = primary_rule(p)) // primary
15042 &&
15043 (a = _PyPegen_expect_token(p, 25)) // token='{'
15044 )
15045 {
15046 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15047 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
15048 if (_res == NULL && PyErr_Occurred()) {
15049 p->error_indicator = 1;
15050 D(p->level--);
15051 return NULL;
15052 }
15053 goto done;
15054 }
15055 p->mark = _mark;
15056 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
15057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
15058 }
15059 _res = NULL;
15060 done:
15061 D(p->level--);
15062 return _res;
15063}
15064
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015065// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
15066static void *
15067invalid_comprehension_rule(Parser *p)
15068{
15069 D(p->level++);
15070 if (p->error_indicator) {
15071 D(p->level--);
15072 return NULL;
15073 }
15074 void * _res = NULL;
15075 int _mark = p->mark;
15076 { // ('[' | '(' | '{') starred_expression for_if_clauses
15077 if (p->error_indicator) {
15078 D(p->level--);
15079 return NULL;
15080 }
15081 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015082 void *_tmp_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015083 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015084 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015085 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015086 (_tmp_130_var = _tmp_130_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015087 &&
15088 (a = starred_expression_rule(p)) // starred_expression
15089 &&
15090 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15091 )
15092 {
15093 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15094 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
15095 if (_res == NULL && PyErr_Occurred()) {
15096 p->error_indicator = 1;
15097 D(p->level--);
15098 return NULL;
15099 }
15100 goto done;
15101 }
15102 p->mark = _mark;
15103 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15105 }
15106 _res = NULL;
15107 done:
15108 D(p->level--);
15109 return _res;
15110}
15111
15112// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15113static void *
15114invalid_dict_comprehension_rule(Parser *p)
15115{
15116 D(p->level++);
15117 if (p->error_indicator) {
15118 D(p->level--);
15119 return NULL;
15120 }
15121 void * _res = NULL;
15122 int _mark = p->mark;
15123 { // '{' '**' bitwise_or for_if_clauses '}'
15124 if (p->error_indicator) {
15125 D(p->level--);
15126 return NULL;
15127 }
15128 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15129 Token * _literal;
15130 Token * _literal_1;
15131 Token * a;
15132 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015133 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015134 if (
15135 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15136 &&
15137 (a = _PyPegen_expect_token(p, 35)) // token='**'
15138 &&
15139 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15140 &&
15141 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15142 &&
15143 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15144 )
15145 {
15146 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15147 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15148 if (_res == NULL && PyErr_Occurred()) {
15149 p->error_indicator = 1;
15150 D(p->level--);
15151 return NULL;
15152 }
15153 goto done;
15154 }
15155 p->mark = _mark;
15156 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15158 }
15159 _res = NULL;
15160 done:
15161 D(p->level--);
15162 return _res;
15163}
15164
15165// invalid_parameters:
15166// | param_no_default* (slash_with_default | param_with_default+) param_no_default
15167static void *
15168invalid_parameters_rule(Parser *p)
15169{
15170 D(p->level++);
15171 if (p->error_indicator) {
15172 D(p->level--);
15173 return NULL;
15174 }
15175 void * _res = NULL;
15176 int _mark = p->mark;
15177 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
15178 if (p->error_indicator) {
15179 D(p->level--);
15180 return NULL;
15181 }
15182 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015183 asdl_seq * _loop0_131_var;
15184 void *_tmp_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015185 arg_ty param_no_default_var;
15186 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015187 (_loop0_131_var = _loop0_131_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015188 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015189 (_tmp_132_var = _tmp_132_rule(p)) // slash_with_default | param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015190 &&
15191 (param_no_default_var = param_no_default_rule(p)) // param_no_default
15192 )
15193 {
15194 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
15195 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15196 if (_res == NULL && PyErr_Occurred()) {
15197 p->error_indicator = 1;
15198 D(p->level--);
15199 return NULL;
15200 }
15201 goto done;
15202 }
15203 p->mark = _mark;
15204 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
15206 }
15207 _res = NULL;
15208 done:
15209 D(p->level--);
15210 return _res;
15211}
15212
15213// invalid_lambda_parameters:
15214// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15215static void *
15216invalid_lambda_parameters_rule(Parser *p)
15217{
15218 D(p->level++);
15219 if (p->error_indicator) {
15220 D(p->level--);
15221 return NULL;
15222 }
15223 void * _res = NULL;
15224 int _mark = p->mark;
15225 { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15226 if (p->error_indicator) {
15227 D(p->level--);
15228 return NULL;
15229 }
15230 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015231 asdl_seq * _loop0_133_var;
15232 void *_tmp_134_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015233 arg_ty lambda_param_no_default_var;
15234 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015235 (_loop0_133_var = _loop0_133_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015236 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015237 (_tmp_134_var = _tmp_134_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015238 &&
15239 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15240 )
15241 {
15242 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15243 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15244 if (_res == NULL && PyErr_Occurred()) {
15245 p->error_indicator = 1;
15246 D(p->level--);
15247 return NULL;
15248 }
15249 goto done;
15250 }
15251 p->mark = _mark;
15252 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15254 }
15255 _res = NULL;
15256 done:
15257 D(p->level--);
15258 return _res;
15259}
15260
15261// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
15262static void *
15263invalid_star_etc_rule(Parser *p)
15264{
15265 D(p->level++);
15266 if (p->error_indicator) {
15267 D(p->level--);
15268 return NULL;
15269 }
15270 void * _res = NULL;
15271 int _mark = p->mark;
15272 { // '*' (')' | ',' (')' | '**'))
15273 if (p->error_indicator) {
15274 D(p->level--);
15275 return NULL;
15276 }
15277 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15278 Token * _literal;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015279 void *_tmp_135_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015280 if (
15281 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15282 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015283 (_tmp_135_var = _tmp_135_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015284 )
15285 {
15286 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15287 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15288 if (_res == NULL && PyErr_Occurred()) {
15289 p->error_indicator = 1;
15290 D(p->level--);
15291 return NULL;
15292 }
15293 goto done;
15294 }
15295 p->mark = _mark;
15296 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15298 }
15299 { // '*' ',' TYPE_COMMENT
15300 if (p->error_indicator) {
15301 D(p->level--);
15302 return NULL;
15303 }
15304 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15305 Token * _literal;
15306 Token * _literal_1;
15307 Token * type_comment_var;
15308 if (
15309 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15310 &&
15311 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15312 &&
15313 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15314 )
15315 {
15316 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15317 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15318 if (_res == NULL && PyErr_Occurred()) {
15319 p->error_indicator = 1;
15320 D(p->level--);
15321 return NULL;
15322 }
15323 goto done;
15324 }
15325 p->mark = _mark;
15326 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15328 }
15329 _res = NULL;
15330 done:
15331 D(p->level--);
15332 return _res;
15333}
15334
15335// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15336static void *
15337invalid_lambda_star_etc_rule(Parser *p)
15338{
15339 D(p->level++);
15340 if (p->error_indicator) {
15341 D(p->level--);
15342 return NULL;
15343 }
15344 void * _res = NULL;
15345 int _mark = p->mark;
15346 { // '*' (':' | ',' (':' | '**'))
15347 if (p->error_indicator) {
15348 D(p->level--);
15349 return NULL;
15350 }
15351 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15352 Token * _literal;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015353 void *_tmp_136_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015354 if (
15355 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15356 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015357 (_tmp_136_var = _tmp_136_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015358 )
15359 {
15360 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15361 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15362 if (_res == NULL && PyErr_Occurred()) {
15363 p->error_indicator = 1;
15364 D(p->level--);
15365 return NULL;
15366 }
15367 goto done;
15368 }
15369 p->mark = _mark;
15370 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15372 }
15373 _res = NULL;
15374 done:
15375 D(p->level--);
15376 return _res;
15377}
15378
15379// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15380static void *
15381invalid_double_type_comments_rule(Parser *p)
15382{
15383 D(p->level++);
15384 if (p->error_indicator) {
15385 D(p->level--);
15386 return NULL;
15387 }
15388 void * _res = NULL;
15389 int _mark = p->mark;
15390 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15391 if (p->error_indicator) {
15392 D(p->level--);
15393 return NULL;
15394 }
15395 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15396 Token * indent_var;
15397 Token * newline_var;
15398 Token * newline_var_1;
15399 Token * type_comment_var;
15400 Token * type_comment_var_1;
15401 if (
15402 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15403 &&
15404 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15405 &&
15406 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15407 &&
15408 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15409 &&
15410 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
15411 )
15412 {
15413 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"));
15414 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15415 if (_res == NULL && PyErr_Occurred()) {
15416 p->error_indicator = 1;
15417 D(p->level--);
15418 return NULL;
15419 }
15420 goto done;
15421 }
15422 p->mark = _mark;
15423 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15425 }
15426 _res = NULL;
15427 done:
15428 D(p->level--);
15429 return _res;
15430}
15431
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015432// invalid_with_item: expression 'as' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015433static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015434invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015435{
15436 D(p->level++);
15437 if (p->error_indicator) {
15438 D(p->level--);
15439 return NULL;
15440 }
15441 void * _res = NULL;
15442 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015443 { // expression 'as' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015444 if (p->error_indicator) {
15445 D(p->level--);
15446 return NULL;
15447 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015448 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15449 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015450 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015451 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015452 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015453 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015454 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015455 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15456 &&
15457 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015458 )
15459 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015460 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 +030015461 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015462 if (_res == NULL && PyErr_Occurred()) {
15463 p->error_indicator = 1;
15464 D(p->level--);
15465 return NULL;
15466 }
15467 goto done;
15468 }
15469 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015470 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15472 }
15473 _res = NULL;
15474 done:
15475 D(p->level--);
15476 return _res;
15477}
15478
15479// invalid_for_target: ASYNC? 'for' star_expressions
15480static void *
15481invalid_for_target_rule(Parser *p)
15482{
15483 D(p->level++);
15484 if (p->error_indicator) {
15485 D(p->level--);
15486 return NULL;
15487 }
15488 void * _res = NULL;
15489 int _mark = p->mark;
15490 { // ASYNC? 'for' star_expressions
15491 if (p->error_indicator) {
15492 D(p->level--);
15493 return NULL;
15494 }
15495 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15496 Token * _keyword;
15497 void *_opt_var;
15498 UNUSED(_opt_var); // Silence compiler warnings
15499 expr_ty a;
15500 if (
15501 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15502 &&
15503 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15504 &&
15505 (a = star_expressions_rule(p)) // star_expressions
15506 )
15507 {
15508 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 +030015509 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015510 if (_res == NULL && PyErr_Occurred()) {
15511 p->error_indicator = 1;
15512 D(p->level--);
15513 return NULL;
15514 }
15515 goto done;
15516 }
15517 p->mark = _mark;
15518 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15520 }
15521 _res = NULL;
15522 done:
15523 D(p->level--);
15524 return _res;
15525}
15526
15527// invalid_group: '(' starred_expression ')'
15528static void *
15529invalid_group_rule(Parser *p)
15530{
15531 D(p->level++);
15532 if (p->error_indicator) {
15533 D(p->level--);
15534 return NULL;
15535 }
15536 void * _res = NULL;
15537 int _mark = p->mark;
15538 { // '(' starred_expression ')'
15539 if (p->error_indicator) {
15540 D(p->level--);
15541 return NULL;
15542 }
15543 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15544 Token * _literal;
15545 Token * _literal_1;
15546 expr_ty a;
15547 if (
15548 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15549 &&
15550 (a = starred_expression_rule(p)) // starred_expression
15551 &&
15552 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15553 )
15554 {
15555 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15556 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15557 if (_res == NULL && PyErr_Occurred()) {
15558 p->error_indicator = 1;
15559 D(p->level--);
15560 return NULL;
15561 }
15562 goto done;
15563 }
15564 p->mark = _mark;
15565 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015567 }
15568 _res = NULL;
15569 done:
15570 D(p->level--);
15571 return _res;
15572}
15573
15574// invalid_import_from_targets: import_from_as_names ','
15575static void *
15576invalid_import_from_targets_rule(Parser *p)
15577{
15578 D(p->level++);
15579 if (p->error_indicator) {
15580 D(p->level--);
15581 return NULL;
15582 }
15583 void * _res = NULL;
15584 int _mark = p->mark;
15585 { // import_from_as_names ','
15586 if (p->error_indicator) {
15587 D(p->level--);
15588 return NULL;
15589 }
15590 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15591 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015592 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015593 if (
15594 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15595 &&
15596 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15597 )
15598 {
15599 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15600 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15601 if (_res == NULL && PyErr_Occurred()) {
15602 p->error_indicator = 1;
15603 D(p->level--);
15604 return NULL;
15605 }
15606 goto done;
15607 }
15608 p->mark = _mark;
15609 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
15611 }
15612 _res = NULL;
15613 done:
15614 D(p->level--);
15615 return _res;
15616}
15617
15618// _loop0_1: NEWLINE
15619static asdl_seq *
15620_loop0_1_rule(Parser *p)
15621{
15622 D(p->level++);
15623 if (p->error_indicator) {
15624 D(p->level--);
15625 return NULL;
15626 }
15627 void *_res = NULL;
15628 int _mark = p->mark;
15629 int _start_mark = p->mark;
15630 void **_children = PyMem_Malloc(sizeof(void *));
15631 if (!_children) {
15632 p->error_indicator = 1;
15633 PyErr_NoMemory();
15634 D(p->level--);
15635 return NULL;
15636 }
15637 ssize_t _children_capacity = 1;
15638 ssize_t _n = 0;
15639 { // NEWLINE
15640 if (p->error_indicator) {
15641 D(p->level--);
15642 return NULL;
15643 }
15644 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
15645 Token * newline_var;
15646 while (
15647 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15648 )
15649 {
15650 _res = newline_var;
15651 if (_n == _children_capacity) {
15652 _children_capacity *= 2;
15653 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15654 if (!_new_children) {
15655 p->error_indicator = 1;
15656 PyErr_NoMemory();
15657 D(p->level--);
15658 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015659 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015660 _children = _new_children;
15661 }
15662 _children[_n++] = _res;
15663 _mark = p->mark;
15664 }
15665 p->mark = _mark;
15666 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
15668 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015669 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015670 if (!_seq) {
15671 PyMem_Free(_children);
15672 p->error_indicator = 1;
15673 PyErr_NoMemory();
15674 D(p->level--);
15675 return NULL;
15676 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015677 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015678 PyMem_Free(_children);
15679 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
15680 D(p->level--);
15681 return _seq;
15682}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015683
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015684// _loop0_2: NEWLINE
15685static asdl_seq *
15686_loop0_2_rule(Parser *p)
15687{
15688 D(p->level++);
15689 if (p->error_indicator) {
15690 D(p->level--);
15691 return NULL;
15692 }
15693 void *_res = NULL;
15694 int _mark = p->mark;
15695 int _start_mark = p->mark;
15696 void **_children = PyMem_Malloc(sizeof(void *));
15697 if (!_children) {
15698 p->error_indicator = 1;
15699 PyErr_NoMemory();
15700 D(p->level--);
15701 return NULL;
15702 }
15703 ssize_t _children_capacity = 1;
15704 ssize_t _n = 0;
15705 { // NEWLINE
15706 if (p->error_indicator) {
15707 D(p->level--);
15708 return NULL;
15709 }
15710 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
15711 Token * newline_var;
15712 while (
15713 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15714 )
15715 {
15716 _res = newline_var;
15717 if (_n == _children_capacity) {
15718 _children_capacity *= 2;
15719 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15720 if (!_new_children) {
15721 p->error_indicator = 1;
15722 PyErr_NoMemory();
15723 D(p->level--);
15724 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015725 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015726 _children = _new_children;
15727 }
15728 _children[_n++] = _res;
15729 _mark = p->mark;
15730 }
15731 p->mark = _mark;
15732 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
15734 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015735 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015736 if (!_seq) {
15737 PyMem_Free(_children);
15738 p->error_indicator = 1;
15739 PyErr_NoMemory();
15740 D(p->level--);
15741 return NULL;
15742 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015743 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015744 PyMem_Free(_children);
15745 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
15746 D(p->level--);
15747 return _seq;
15748}
15749
15750// _loop0_4: ',' expression
15751static asdl_seq *
15752_loop0_4_rule(Parser *p)
15753{
15754 D(p->level++);
15755 if (p->error_indicator) {
15756 D(p->level--);
15757 return NULL;
15758 }
15759 void *_res = NULL;
15760 int _mark = p->mark;
15761 int _start_mark = p->mark;
15762 void **_children = PyMem_Malloc(sizeof(void *));
15763 if (!_children) {
15764 p->error_indicator = 1;
15765 PyErr_NoMemory();
15766 D(p->level--);
15767 return NULL;
15768 }
15769 ssize_t _children_capacity = 1;
15770 ssize_t _n = 0;
15771 { // ',' expression
15772 if (p->error_indicator) {
15773 D(p->level--);
15774 return NULL;
15775 }
15776 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
15777 Token * _literal;
15778 expr_ty elem;
15779 while (
15780 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15781 &&
15782 (elem = expression_rule(p)) // expression
15783 )
15784 {
15785 _res = elem;
15786 if (_res == NULL && PyErr_Occurred()) {
15787 p->error_indicator = 1;
15788 PyMem_Free(_children);
15789 D(p->level--);
15790 return NULL;
15791 }
15792 if (_n == _children_capacity) {
15793 _children_capacity *= 2;
15794 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15795 if (!_new_children) {
15796 p->error_indicator = 1;
15797 PyErr_NoMemory();
15798 D(p->level--);
15799 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015800 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015801 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015802 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015803 _children[_n++] = _res;
15804 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015805 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015806 p->mark = _mark;
15807 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015809 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015810 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015811 if (!_seq) {
15812 PyMem_Free(_children);
15813 p->error_indicator = 1;
15814 PyErr_NoMemory();
15815 D(p->level--);
15816 return NULL;
15817 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015818 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015819 PyMem_Free(_children);
15820 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
15821 D(p->level--);
15822 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015823}
15824
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015825// _gather_3: expression _loop0_4
15826static asdl_seq *
15827_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015828{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015829 D(p->level++);
15830 if (p->error_indicator) {
15831 D(p->level--);
15832 return NULL;
15833 }
15834 asdl_seq * _res = NULL;
15835 int _mark = p->mark;
15836 { // expression _loop0_4
15837 if (p->error_indicator) {
15838 D(p->level--);
15839 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015840 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015841 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
15842 expr_ty elem;
15843 asdl_seq * seq;
15844 if (
15845 (elem = expression_rule(p)) // expression
15846 &&
15847 (seq = _loop0_4_rule(p)) // _loop0_4
15848 )
15849 {
15850 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
15851 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
15852 goto done;
15853 }
15854 p->mark = _mark;
15855 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015857 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015858 _res = NULL;
15859 done:
15860 D(p->level--);
15861 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015862}
15863
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015864// _loop0_6: ',' expression
15865static asdl_seq *
15866_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015867{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015868 D(p->level++);
15869 if (p->error_indicator) {
15870 D(p->level--);
15871 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015872 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015873 void *_res = NULL;
15874 int _mark = p->mark;
15875 int _start_mark = p->mark;
15876 void **_children = PyMem_Malloc(sizeof(void *));
15877 if (!_children) {
15878 p->error_indicator = 1;
15879 PyErr_NoMemory();
15880 D(p->level--);
15881 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015882 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015883 ssize_t _children_capacity = 1;
15884 ssize_t _n = 0;
15885 { // ',' expression
15886 if (p->error_indicator) {
15887 D(p->level--);
15888 return NULL;
15889 }
15890 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
15891 Token * _literal;
15892 expr_ty elem;
15893 while (
15894 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15895 &&
15896 (elem = expression_rule(p)) // expression
15897 )
15898 {
15899 _res = elem;
15900 if (_res == NULL && PyErr_Occurred()) {
15901 p->error_indicator = 1;
15902 PyMem_Free(_children);
15903 D(p->level--);
15904 return NULL;
15905 }
15906 if (_n == _children_capacity) {
15907 _children_capacity *= 2;
15908 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15909 if (!_new_children) {
15910 p->error_indicator = 1;
15911 PyErr_NoMemory();
15912 D(p->level--);
15913 return NULL;
15914 }
15915 _children = _new_children;
15916 }
15917 _children[_n++] = _res;
15918 _mark = p->mark;
15919 }
15920 p->mark = _mark;
15921 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
15922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
15923 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015924 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015925 if (!_seq) {
15926 PyMem_Free(_children);
15927 p->error_indicator = 1;
15928 PyErr_NoMemory();
15929 D(p->level--);
15930 return NULL;
15931 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015932 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015933 PyMem_Free(_children);
15934 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
15935 D(p->level--);
15936 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015937}
15938
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015939// _gather_5: expression _loop0_6
15940static asdl_seq *
15941_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015942{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015943 D(p->level++);
15944 if (p->error_indicator) {
15945 D(p->level--);
15946 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015947 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015948 asdl_seq * _res = NULL;
15949 int _mark = p->mark;
15950 { // expression _loop0_6
15951 if (p->error_indicator) {
15952 D(p->level--);
15953 return NULL;
15954 }
15955 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
15956 expr_ty elem;
15957 asdl_seq * seq;
15958 if (
15959 (elem = expression_rule(p)) // expression
15960 &&
15961 (seq = _loop0_6_rule(p)) // _loop0_6
15962 )
15963 {
15964 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
15965 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
15966 goto done;
15967 }
15968 p->mark = _mark;
15969 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
15970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
15971 }
15972 _res = NULL;
15973 done:
15974 D(p->level--);
15975 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015976}
15977
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015978// _loop0_8: ',' expression
15979static asdl_seq *
15980_loop0_8_rule(Parser *p)
15981{
15982 D(p->level++);
15983 if (p->error_indicator) {
15984 D(p->level--);
15985 return NULL;
15986 }
15987 void *_res = NULL;
15988 int _mark = p->mark;
15989 int _start_mark = p->mark;
15990 void **_children = PyMem_Malloc(sizeof(void *));
15991 if (!_children) {
15992 p->error_indicator = 1;
15993 PyErr_NoMemory();
15994 D(p->level--);
15995 return NULL;
15996 }
15997 ssize_t _children_capacity = 1;
15998 ssize_t _n = 0;
15999 { // ',' expression
16000 if (p->error_indicator) {
16001 D(p->level--);
16002 return NULL;
16003 }
16004 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16005 Token * _literal;
16006 expr_ty elem;
16007 while (
16008 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16009 &&
16010 (elem = expression_rule(p)) // expression
16011 )
16012 {
16013 _res = elem;
16014 if (_res == NULL && PyErr_Occurred()) {
16015 p->error_indicator = 1;
16016 PyMem_Free(_children);
16017 D(p->level--);
16018 return NULL;
16019 }
16020 if (_n == _children_capacity) {
16021 _children_capacity *= 2;
16022 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16023 if (!_new_children) {
16024 p->error_indicator = 1;
16025 PyErr_NoMemory();
16026 D(p->level--);
16027 return NULL;
16028 }
16029 _children = _new_children;
16030 }
16031 _children[_n++] = _res;
16032 _mark = p->mark;
16033 }
16034 p->mark = _mark;
16035 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16037 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016038 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016039 if (!_seq) {
16040 PyMem_Free(_children);
16041 p->error_indicator = 1;
16042 PyErr_NoMemory();
16043 D(p->level--);
16044 return NULL;
16045 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016046 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016047 PyMem_Free(_children);
16048 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
16049 D(p->level--);
16050 return _seq;
16051}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016052
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016053// _gather_7: expression _loop0_8
16054static asdl_seq *
16055_gather_7_rule(Parser *p)
16056{
16057 D(p->level++);
16058 if (p->error_indicator) {
16059 D(p->level--);
16060 return NULL;
16061 }
16062 asdl_seq * _res = NULL;
16063 int _mark = p->mark;
16064 { // expression _loop0_8
16065 if (p->error_indicator) {
16066 D(p->level--);
16067 return NULL;
16068 }
16069 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16070 expr_ty elem;
16071 asdl_seq * seq;
16072 if (
16073 (elem = expression_rule(p)) // expression
16074 &&
16075 (seq = _loop0_8_rule(p)) // _loop0_8
16076 )
16077 {
16078 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16079 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16080 goto done;
16081 }
16082 p->mark = _mark;
16083 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
16085 }
16086 _res = NULL;
16087 done:
16088 D(p->level--);
16089 return _res;
16090}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016091
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016092// _loop0_10: ',' expression
16093static asdl_seq *
16094_loop0_10_rule(Parser *p)
16095{
16096 D(p->level++);
16097 if (p->error_indicator) {
16098 D(p->level--);
16099 return NULL;
16100 }
16101 void *_res = NULL;
16102 int _mark = p->mark;
16103 int _start_mark = p->mark;
16104 void **_children = PyMem_Malloc(sizeof(void *));
16105 if (!_children) {
16106 p->error_indicator = 1;
16107 PyErr_NoMemory();
16108 D(p->level--);
16109 return NULL;
16110 }
16111 ssize_t _children_capacity = 1;
16112 ssize_t _n = 0;
16113 { // ',' expression
16114 if (p->error_indicator) {
16115 D(p->level--);
16116 return NULL;
16117 }
16118 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16119 Token * _literal;
16120 expr_ty elem;
16121 while (
16122 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16123 &&
16124 (elem = expression_rule(p)) // expression
16125 )
16126 {
16127 _res = elem;
16128 if (_res == NULL && PyErr_Occurred()) {
16129 p->error_indicator = 1;
16130 PyMem_Free(_children);
16131 D(p->level--);
16132 return NULL;
16133 }
16134 if (_n == _children_capacity) {
16135 _children_capacity *= 2;
16136 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16137 if (!_new_children) {
16138 p->error_indicator = 1;
16139 PyErr_NoMemory();
16140 D(p->level--);
16141 return NULL;
16142 }
16143 _children = _new_children;
16144 }
16145 _children[_n++] = _res;
16146 _mark = p->mark;
16147 }
16148 p->mark = _mark;
16149 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16151 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016152 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016153 if (!_seq) {
16154 PyMem_Free(_children);
16155 p->error_indicator = 1;
16156 PyErr_NoMemory();
16157 D(p->level--);
16158 return NULL;
16159 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016160 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016161 PyMem_Free(_children);
16162 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
16163 D(p->level--);
16164 return _seq;
16165}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016166
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016167// _gather_9: expression _loop0_10
16168static asdl_seq *
16169_gather_9_rule(Parser *p)
16170{
16171 D(p->level++);
16172 if (p->error_indicator) {
16173 D(p->level--);
16174 return NULL;
16175 }
16176 asdl_seq * _res = NULL;
16177 int _mark = p->mark;
16178 { // expression _loop0_10
16179 if (p->error_indicator) {
16180 D(p->level--);
16181 return NULL;
16182 }
16183 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16184 expr_ty elem;
16185 asdl_seq * seq;
16186 if (
16187 (elem = expression_rule(p)) // expression
16188 &&
16189 (seq = _loop0_10_rule(p)) // _loop0_10
16190 )
16191 {
16192 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16193 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16194 goto done;
16195 }
16196 p->mark = _mark;
16197 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
16199 }
16200 _res = NULL;
16201 done:
16202 D(p->level--);
16203 return _res;
16204}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016205
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016206// _loop1_11: statement
16207static asdl_seq *
16208_loop1_11_rule(Parser *p)
16209{
16210 D(p->level++);
16211 if (p->error_indicator) {
16212 D(p->level--);
16213 return NULL;
16214 }
16215 void *_res = NULL;
16216 int _mark = p->mark;
16217 int _start_mark = p->mark;
16218 void **_children = PyMem_Malloc(sizeof(void *));
16219 if (!_children) {
16220 p->error_indicator = 1;
16221 PyErr_NoMemory();
16222 D(p->level--);
16223 return NULL;
16224 }
16225 ssize_t _children_capacity = 1;
16226 ssize_t _n = 0;
16227 { // statement
16228 if (p->error_indicator) {
16229 D(p->level--);
16230 return NULL;
16231 }
16232 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010016233 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016234 while (
16235 (statement_var = statement_rule(p)) // statement
16236 )
16237 {
16238 _res = statement_var;
16239 if (_n == _children_capacity) {
16240 _children_capacity *= 2;
16241 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16242 if (!_new_children) {
16243 p->error_indicator = 1;
16244 PyErr_NoMemory();
16245 D(p->level--);
16246 return NULL;
16247 }
16248 _children = _new_children;
16249 }
16250 _children[_n++] = _res;
16251 _mark = p->mark;
16252 }
16253 p->mark = _mark;
16254 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
16256 }
16257 if (_n == 0 || p->error_indicator) {
16258 PyMem_Free(_children);
16259 D(p->level--);
16260 return NULL;
16261 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016262 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016263 if (!_seq) {
16264 PyMem_Free(_children);
16265 p->error_indicator = 1;
16266 PyErr_NoMemory();
16267 D(p->level--);
16268 return NULL;
16269 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016270 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016271 PyMem_Free(_children);
16272 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
16273 D(p->level--);
16274 return _seq;
16275}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016276
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016277// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016278static asdl_seq *
16279_loop0_13_rule(Parser *p)
16280{
16281 D(p->level++);
16282 if (p->error_indicator) {
16283 D(p->level--);
16284 return NULL;
16285 }
16286 void *_res = NULL;
16287 int _mark = p->mark;
16288 int _start_mark = p->mark;
16289 void **_children = PyMem_Malloc(sizeof(void *));
16290 if (!_children) {
16291 p->error_indicator = 1;
16292 PyErr_NoMemory();
16293 D(p->level--);
16294 return NULL;
16295 }
16296 ssize_t _children_capacity = 1;
16297 ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016298 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016299 if (p->error_indicator) {
16300 D(p->level--);
16301 return NULL;
16302 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016303 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016304 Token * _literal;
16305 stmt_ty elem;
16306 while (
16307 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
16308 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016309 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016310 )
16311 {
16312 _res = elem;
16313 if (_res == NULL && PyErr_Occurred()) {
16314 p->error_indicator = 1;
16315 PyMem_Free(_children);
16316 D(p->level--);
16317 return NULL;
16318 }
16319 if (_n == _children_capacity) {
16320 _children_capacity *= 2;
16321 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16322 if (!_new_children) {
16323 p->error_indicator = 1;
16324 PyErr_NoMemory();
16325 D(p->level--);
16326 return NULL;
16327 }
16328 _children = _new_children;
16329 }
16330 _children[_n++] = _res;
16331 _mark = p->mark;
16332 }
16333 p->mark = _mark;
16334 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016336 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016337 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016338 if (!_seq) {
16339 PyMem_Free(_children);
16340 p->error_indicator = 1;
16341 PyErr_NoMemory();
16342 D(p->level--);
16343 return NULL;
16344 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016345 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016346 PyMem_Free(_children);
16347 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
16348 D(p->level--);
16349 return _seq;
16350}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016351
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016352// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016353static asdl_seq *
16354_gather_12_rule(Parser *p)
16355{
16356 D(p->level++);
16357 if (p->error_indicator) {
16358 D(p->level--);
16359 return NULL;
16360 }
16361 asdl_seq * _res = NULL;
16362 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016363 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016364 if (p->error_indicator) {
16365 D(p->level--);
16366 return NULL;
16367 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016368 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 +010016369 stmt_ty elem;
16370 asdl_seq * seq;
16371 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016372 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016373 &&
16374 (seq = _loop0_13_rule(p)) // _loop0_13
16375 )
16376 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016377 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 +010016378 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16379 goto done;
16380 }
16381 p->mark = _mark;
16382 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016384 }
16385 _res = NULL;
16386 done:
16387 D(p->level--);
16388 return _res;
16389}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016390
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016391// _tmp_14: 'import' | 'from'
16392static void *
16393_tmp_14_rule(Parser *p)
16394{
16395 D(p->level++);
16396 if (p->error_indicator) {
16397 D(p->level--);
16398 return NULL;
16399 }
16400 void * _res = NULL;
16401 int _mark = p->mark;
16402 { // 'import'
16403 if (p->error_indicator) {
16404 D(p->level--);
16405 return NULL;
16406 }
16407 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
16408 Token * _keyword;
16409 if (
16410 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
16411 )
16412 {
16413 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
16414 _res = _keyword;
16415 goto done;
16416 }
16417 p->mark = _mark;
16418 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
16420 }
16421 { // 'from'
16422 if (p->error_indicator) {
16423 D(p->level--);
16424 return NULL;
16425 }
16426 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
16427 Token * _keyword;
16428 if (
16429 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
16430 )
16431 {
16432 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
16433 _res = _keyword;
16434 goto done;
16435 }
16436 p->mark = _mark;
16437 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
16439 }
16440 _res = NULL;
16441 done:
16442 D(p->level--);
16443 return _res;
16444}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016445
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016446// _tmp_15: 'def' | '@' | ASYNC
16447static void *
16448_tmp_15_rule(Parser *p)
16449{
16450 D(p->level++);
16451 if (p->error_indicator) {
16452 D(p->level--);
16453 return NULL;
16454 }
16455 void * _res = NULL;
16456 int _mark = p->mark;
16457 { // 'def'
16458 if (p->error_indicator) {
16459 D(p->level--);
16460 return NULL;
16461 }
16462 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
16463 Token * _keyword;
16464 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016465 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016466 )
16467 {
16468 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
16469 _res = _keyword;
16470 goto done;
16471 }
16472 p->mark = _mark;
16473 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
16475 }
16476 { // '@'
16477 if (p->error_indicator) {
16478 D(p->level--);
16479 return NULL;
16480 }
16481 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16482 Token * _literal;
16483 if (
16484 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16485 )
16486 {
16487 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16488 _res = _literal;
16489 goto done;
16490 }
16491 p->mark = _mark;
16492 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16494 }
16495 { // ASYNC
16496 if (p->error_indicator) {
16497 D(p->level--);
16498 return NULL;
16499 }
16500 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16501 Token * async_var;
16502 if (
16503 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16504 )
16505 {
16506 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16507 _res = async_var;
16508 goto done;
16509 }
16510 p->mark = _mark;
16511 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16513 }
16514 _res = NULL;
16515 done:
16516 D(p->level--);
16517 return _res;
16518}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016519
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016520// _tmp_16: 'class' | '@'
16521static void *
16522_tmp_16_rule(Parser *p)
16523{
16524 D(p->level++);
16525 if (p->error_indicator) {
16526 D(p->level--);
16527 return NULL;
16528 }
16529 void * _res = NULL;
16530 int _mark = p->mark;
16531 { // 'class'
16532 if (p->error_indicator) {
16533 D(p->level--);
16534 return NULL;
16535 }
16536 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
16537 Token * _keyword;
16538 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016539 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016540 )
16541 {
16542 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
16543 _res = _keyword;
16544 goto done;
16545 }
16546 p->mark = _mark;
16547 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
16549 }
16550 { // '@'
16551 if (p->error_indicator) {
16552 D(p->level--);
16553 return NULL;
16554 }
16555 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16556 Token * _literal;
16557 if (
16558 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16559 )
16560 {
16561 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16562 _res = _literal;
16563 goto done;
16564 }
16565 p->mark = _mark;
16566 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16568 }
16569 _res = NULL;
16570 done:
16571 D(p->level--);
16572 return _res;
16573}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016574
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016575// _tmp_17: 'with' | ASYNC
16576static void *
16577_tmp_17_rule(Parser *p)
16578{
16579 D(p->level++);
16580 if (p->error_indicator) {
16581 D(p->level--);
16582 return NULL;
16583 }
16584 void * _res = NULL;
16585 int _mark = p->mark;
16586 { // 'with'
16587 if (p->error_indicator) {
16588 D(p->level--);
16589 return NULL;
16590 }
16591 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
16592 Token * _keyword;
16593 if (
16594 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
16595 )
16596 {
16597 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
16598 _res = _keyword;
16599 goto done;
16600 }
16601 p->mark = _mark;
16602 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
16604 }
16605 { // ASYNC
16606 if (p->error_indicator) {
16607 D(p->level--);
16608 return NULL;
16609 }
16610 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16611 Token * async_var;
16612 if (
16613 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16614 )
16615 {
16616 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16617 _res = async_var;
16618 goto done;
16619 }
16620 p->mark = _mark;
16621 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16623 }
16624 _res = NULL;
16625 done:
16626 D(p->level--);
16627 return _res;
16628}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016629
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016630// _tmp_18: 'for' | ASYNC
16631static void *
16632_tmp_18_rule(Parser *p)
16633{
16634 D(p->level++);
16635 if (p->error_indicator) {
16636 D(p->level--);
16637 return NULL;
16638 }
16639 void * _res = NULL;
16640 int _mark = p->mark;
16641 { // 'for'
16642 if (p->error_indicator) {
16643 D(p->level--);
16644 return NULL;
16645 }
16646 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
16647 Token * _keyword;
16648 if (
16649 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
16650 )
16651 {
16652 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
16653 _res = _keyword;
16654 goto done;
16655 }
16656 p->mark = _mark;
16657 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
16659 }
16660 { // ASYNC
16661 if (p->error_indicator) {
16662 D(p->level--);
16663 return NULL;
16664 }
16665 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16666 Token * async_var;
16667 if (
16668 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16669 )
16670 {
16671 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16672 _res = async_var;
16673 goto done;
16674 }
16675 p->mark = _mark;
16676 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16678 }
16679 _res = NULL;
16680 done:
16681 D(p->level--);
16682 return _res;
16683}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016684
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016685// _tmp_19: '=' annotated_rhs
16686static void *
16687_tmp_19_rule(Parser *p)
16688{
16689 D(p->level++);
16690 if (p->error_indicator) {
16691 D(p->level--);
16692 return NULL;
16693 }
16694 void * _res = NULL;
16695 int _mark = p->mark;
16696 { // '=' annotated_rhs
16697 if (p->error_indicator) {
16698 D(p->level--);
16699 return NULL;
16700 }
16701 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16702 Token * _literal;
16703 expr_ty d;
16704 if (
16705 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16706 &&
16707 (d = annotated_rhs_rule(p)) // annotated_rhs
16708 )
16709 {
16710 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16711 _res = d;
16712 if (_res == NULL && PyErr_Occurred()) {
16713 p->error_indicator = 1;
16714 D(p->level--);
16715 return NULL;
16716 }
16717 goto done;
16718 }
16719 p->mark = _mark;
16720 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
16722 }
16723 _res = NULL;
16724 done:
16725 D(p->level--);
16726 return _res;
16727}
16728
16729// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
16730static void *
16731_tmp_20_rule(Parser *p)
16732{
16733 D(p->level++);
16734 if (p->error_indicator) {
16735 D(p->level--);
16736 return NULL;
16737 }
16738 void * _res = NULL;
16739 int _mark = p->mark;
16740 { // '(' single_target ')'
16741 if (p->error_indicator) {
16742 D(p->level--);
16743 return NULL;
16744 }
16745 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16746 Token * _literal;
16747 Token * _literal_1;
16748 expr_ty b;
16749 if (
16750 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16751 &&
16752 (b = single_target_rule(p)) // single_target
16753 &&
16754 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16755 )
16756 {
16757 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16758 _res = b;
16759 if (_res == NULL && PyErr_Occurred()) {
16760 p->error_indicator = 1;
16761 D(p->level--);
16762 return NULL;
16763 }
16764 goto done;
16765 }
16766 p->mark = _mark;
16767 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16769 }
16770 { // single_subscript_attribute_target
16771 if (p->error_indicator) {
16772 D(p->level--);
16773 return NULL;
16774 }
16775 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16776 expr_ty single_subscript_attribute_target_var;
16777 if (
16778 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16779 )
16780 {
16781 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16782 _res = single_subscript_attribute_target_var;
16783 goto done;
16784 }
16785 p->mark = _mark;
16786 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16788 }
16789 _res = NULL;
16790 done:
16791 D(p->level--);
16792 return _res;
16793}
16794
16795// _tmp_21: '=' annotated_rhs
16796static void *
16797_tmp_21_rule(Parser *p)
16798{
16799 D(p->level++);
16800 if (p->error_indicator) {
16801 D(p->level--);
16802 return NULL;
16803 }
16804 void * _res = NULL;
16805 int _mark = p->mark;
16806 { // '=' annotated_rhs
16807 if (p->error_indicator) {
16808 D(p->level--);
16809 return NULL;
16810 }
16811 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16812 Token * _literal;
16813 expr_ty d;
16814 if (
16815 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16816 &&
16817 (d = annotated_rhs_rule(p)) // annotated_rhs
16818 )
16819 {
16820 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16821 _res = d;
16822 if (_res == NULL && PyErr_Occurred()) {
16823 p->error_indicator = 1;
16824 D(p->level--);
16825 return NULL;
16826 }
16827 goto done;
16828 }
16829 p->mark = _mark;
16830 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
16832 }
16833 _res = NULL;
16834 done:
16835 D(p->level--);
16836 return _res;
16837}
16838
16839// _loop1_22: (star_targets '=')
16840static asdl_seq *
16841_loop1_22_rule(Parser *p)
16842{
16843 D(p->level++);
16844 if (p->error_indicator) {
16845 D(p->level--);
16846 return NULL;
16847 }
16848 void *_res = NULL;
16849 int _mark = p->mark;
16850 int _start_mark = p->mark;
16851 void **_children = PyMem_Malloc(sizeof(void *));
16852 if (!_children) {
16853 p->error_indicator = 1;
16854 PyErr_NoMemory();
16855 D(p->level--);
16856 return NULL;
16857 }
16858 ssize_t _children_capacity = 1;
16859 ssize_t _n = 0;
16860 { // (star_targets '=')
16861 if (p->error_indicator) {
16862 D(p->level--);
16863 return NULL;
16864 }
16865 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000016866 void *_tmp_137_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016867 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000016868 (_tmp_137_var = _tmp_137_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016869 )
16870 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000016871 _res = _tmp_137_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016872 if (_n == _children_capacity) {
16873 _children_capacity *= 2;
16874 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16875 if (!_new_children) {
16876 p->error_indicator = 1;
16877 PyErr_NoMemory();
16878 D(p->level--);
16879 return NULL;
16880 }
16881 _children = _new_children;
16882 }
16883 _children[_n++] = _res;
16884 _mark = p->mark;
16885 }
16886 p->mark = _mark;
16887 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
16888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
16889 }
16890 if (_n == 0 || p->error_indicator) {
16891 PyMem_Free(_children);
16892 D(p->level--);
16893 return NULL;
16894 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016895 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016896 if (!_seq) {
16897 PyMem_Free(_children);
16898 p->error_indicator = 1;
16899 PyErr_NoMemory();
16900 D(p->level--);
16901 return NULL;
16902 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016903 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016904 PyMem_Free(_children);
16905 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
16906 D(p->level--);
16907 return _seq;
16908}
16909
16910// _tmp_23: yield_expr | star_expressions
16911static void *
16912_tmp_23_rule(Parser *p)
16913{
16914 D(p->level++);
16915 if (p->error_indicator) {
16916 D(p->level--);
16917 return NULL;
16918 }
16919 void * _res = NULL;
16920 int _mark = p->mark;
16921 { // yield_expr
16922 if (p->error_indicator) {
16923 D(p->level--);
16924 return NULL;
16925 }
16926 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
16927 expr_ty yield_expr_var;
16928 if (
16929 (yield_expr_var = yield_expr_rule(p)) // yield_expr
16930 )
16931 {
16932 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
16933 _res = yield_expr_var;
16934 goto done;
16935 }
16936 p->mark = _mark;
16937 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
16939 }
16940 { // star_expressions
16941 if (p->error_indicator) {
16942 D(p->level--);
16943 return NULL;
16944 }
16945 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
16946 expr_ty star_expressions_var;
16947 if (
16948 (star_expressions_var = star_expressions_rule(p)) // star_expressions
16949 )
16950 {
16951 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
16952 _res = star_expressions_var;
16953 goto done;
16954 }
16955 p->mark = _mark;
16956 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
16958 }
16959 _res = NULL;
16960 done:
16961 D(p->level--);
16962 return _res;
16963}
16964
16965// _tmp_24: yield_expr | star_expressions
16966static void *
16967_tmp_24_rule(Parser *p)
16968{
16969 D(p->level++);
16970 if (p->error_indicator) {
16971 D(p->level--);
16972 return NULL;
16973 }
16974 void * _res = NULL;
16975 int _mark = p->mark;
16976 { // yield_expr
16977 if (p->error_indicator) {
16978 D(p->level--);
16979 return NULL;
16980 }
16981 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
16982 expr_ty yield_expr_var;
16983 if (
16984 (yield_expr_var = yield_expr_rule(p)) // yield_expr
16985 )
16986 {
16987 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
16988 _res = yield_expr_var;
16989 goto done;
16990 }
16991 p->mark = _mark;
16992 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
16993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
16994 }
16995 { // star_expressions
16996 if (p->error_indicator) {
16997 D(p->level--);
16998 return NULL;
16999 }
17000 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17001 expr_ty star_expressions_var;
17002 if (
17003 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17004 )
17005 {
17006 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17007 _res = star_expressions_var;
17008 goto done;
17009 }
17010 p->mark = _mark;
17011 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17013 }
17014 _res = NULL;
17015 done:
17016 D(p->level--);
17017 return _res;
17018}
17019
17020// _loop0_26: ',' NAME
17021static asdl_seq *
17022_loop0_26_rule(Parser *p)
17023{
17024 D(p->level++);
17025 if (p->error_indicator) {
17026 D(p->level--);
17027 return NULL;
17028 }
17029 void *_res = NULL;
17030 int _mark = p->mark;
17031 int _start_mark = p->mark;
17032 void **_children = PyMem_Malloc(sizeof(void *));
17033 if (!_children) {
17034 p->error_indicator = 1;
17035 PyErr_NoMemory();
17036 D(p->level--);
17037 return NULL;
17038 }
17039 ssize_t _children_capacity = 1;
17040 ssize_t _n = 0;
17041 { // ',' NAME
17042 if (p->error_indicator) {
17043 D(p->level--);
17044 return NULL;
17045 }
17046 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17047 Token * _literal;
17048 expr_ty elem;
17049 while (
17050 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17051 &&
17052 (elem = _PyPegen_name_token(p)) // NAME
17053 )
17054 {
17055 _res = elem;
17056 if (_res == NULL && PyErr_Occurred()) {
17057 p->error_indicator = 1;
17058 PyMem_Free(_children);
17059 D(p->level--);
17060 return NULL;
17061 }
17062 if (_n == _children_capacity) {
17063 _children_capacity *= 2;
17064 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17065 if (!_new_children) {
17066 p->error_indicator = 1;
17067 PyErr_NoMemory();
17068 D(p->level--);
17069 return NULL;
17070 }
17071 _children = _new_children;
17072 }
17073 _children[_n++] = _res;
17074 _mark = p->mark;
17075 }
17076 p->mark = _mark;
17077 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17079 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017080 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017081 if (!_seq) {
17082 PyMem_Free(_children);
17083 p->error_indicator = 1;
17084 PyErr_NoMemory();
17085 D(p->level--);
17086 return NULL;
17087 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017088 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017089 PyMem_Free(_children);
17090 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
17091 D(p->level--);
17092 return _seq;
17093}
17094
17095// _gather_25: NAME _loop0_26
17096static asdl_seq *
17097_gather_25_rule(Parser *p)
17098{
17099 D(p->level++);
17100 if (p->error_indicator) {
17101 D(p->level--);
17102 return NULL;
17103 }
17104 asdl_seq * _res = NULL;
17105 int _mark = p->mark;
17106 { // NAME _loop0_26
17107 if (p->error_indicator) {
17108 D(p->level--);
17109 return NULL;
17110 }
17111 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17112 expr_ty elem;
17113 asdl_seq * seq;
17114 if (
17115 (elem = _PyPegen_name_token(p)) // NAME
17116 &&
17117 (seq = _loop0_26_rule(p)) // _loop0_26
17118 )
17119 {
17120 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17121 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17122 goto done;
17123 }
17124 p->mark = _mark;
17125 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
17127 }
17128 _res = NULL;
17129 done:
17130 D(p->level--);
17131 return _res;
17132}
17133
17134// _loop0_28: ',' NAME
17135static asdl_seq *
17136_loop0_28_rule(Parser *p)
17137{
17138 D(p->level++);
17139 if (p->error_indicator) {
17140 D(p->level--);
17141 return NULL;
17142 }
17143 void *_res = NULL;
17144 int _mark = p->mark;
17145 int _start_mark = p->mark;
17146 void **_children = PyMem_Malloc(sizeof(void *));
17147 if (!_children) {
17148 p->error_indicator = 1;
17149 PyErr_NoMemory();
17150 D(p->level--);
17151 return NULL;
17152 }
17153 ssize_t _children_capacity = 1;
17154 ssize_t _n = 0;
17155 { // ',' NAME
17156 if (p->error_indicator) {
17157 D(p->level--);
17158 return NULL;
17159 }
17160 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17161 Token * _literal;
17162 expr_ty elem;
17163 while (
17164 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17165 &&
17166 (elem = _PyPegen_name_token(p)) // NAME
17167 )
17168 {
17169 _res = elem;
17170 if (_res == NULL && PyErr_Occurred()) {
17171 p->error_indicator = 1;
17172 PyMem_Free(_children);
17173 D(p->level--);
17174 return NULL;
17175 }
17176 if (_n == _children_capacity) {
17177 _children_capacity *= 2;
17178 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17179 if (!_new_children) {
17180 p->error_indicator = 1;
17181 PyErr_NoMemory();
17182 D(p->level--);
17183 return NULL;
17184 }
17185 _children = _new_children;
17186 }
17187 _children[_n++] = _res;
17188 _mark = p->mark;
17189 }
17190 p->mark = _mark;
17191 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17193 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017194 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017195 if (!_seq) {
17196 PyMem_Free(_children);
17197 p->error_indicator = 1;
17198 PyErr_NoMemory();
17199 D(p->level--);
17200 return NULL;
17201 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017202 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017203 PyMem_Free(_children);
17204 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
17205 D(p->level--);
17206 return _seq;
17207}
17208
17209// _gather_27: NAME _loop0_28
17210static asdl_seq *
17211_gather_27_rule(Parser *p)
17212{
17213 D(p->level++);
17214 if (p->error_indicator) {
17215 D(p->level--);
17216 return NULL;
17217 }
17218 asdl_seq * _res = NULL;
17219 int _mark = p->mark;
17220 { // NAME _loop0_28
17221 if (p->error_indicator) {
17222 D(p->level--);
17223 return NULL;
17224 }
17225 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17226 expr_ty elem;
17227 asdl_seq * seq;
17228 if (
17229 (elem = _PyPegen_name_token(p)) // NAME
17230 &&
17231 (seq = _loop0_28_rule(p)) // _loop0_28
17232 )
17233 {
17234 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17235 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17236 goto done;
17237 }
17238 p->mark = _mark;
17239 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
17241 }
17242 _res = NULL;
17243 done:
17244 D(p->level--);
17245 return _res;
17246}
17247
17248// _tmp_29: ',' expression
17249static void *
17250_tmp_29_rule(Parser *p)
17251{
17252 D(p->level++);
17253 if (p->error_indicator) {
17254 D(p->level--);
17255 return NULL;
17256 }
17257 void * _res = NULL;
17258 int _mark = p->mark;
17259 { // ',' expression
17260 if (p->error_indicator) {
17261 D(p->level--);
17262 return NULL;
17263 }
17264 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
17265 Token * _literal;
17266 expr_ty z;
17267 if (
17268 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17269 &&
17270 (z = expression_rule(p)) // expression
17271 )
17272 {
17273 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
17274 _res = z;
17275 if (_res == NULL && PyErr_Occurred()) {
17276 p->error_indicator = 1;
17277 D(p->level--);
17278 return NULL;
17279 }
17280 goto done;
17281 }
17282 p->mark = _mark;
17283 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
17285 }
17286 _res = NULL;
17287 done:
17288 D(p->level--);
17289 return _res;
17290}
17291
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017292// _tmp_30: ';' | NEWLINE
17293static void *
17294_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017295{
17296 D(p->level++);
17297 if (p->error_indicator) {
17298 D(p->level--);
17299 return NULL;
17300 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017301 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017302 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017303 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017304 if (p->error_indicator) {
17305 D(p->level--);
17306 return NULL;
17307 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017308 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17309 Token * _literal;
17310 if (
17311 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017312 )
17313 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017314 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17315 _res = _literal;
17316 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017317 }
17318 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017319 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017321 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017322 { // NEWLINE
17323 if (p->error_indicator) {
17324 D(p->level--);
17325 return NULL;
17326 }
17327 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17328 Token * newline_var;
17329 if (
17330 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17331 )
17332 {
17333 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17334 _res = newline_var;
17335 goto done;
17336 }
17337 p->mark = _mark;
17338 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017340 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017341 _res = NULL;
17342 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017343 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017344 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017345}
17346
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017347// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017348static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017349_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017350{
17351 D(p->level++);
17352 if (p->error_indicator) {
17353 D(p->level--);
17354 return NULL;
17355 }
17356 void *_res = NULL;
17357 int _mark = p->mark;
17358 int _start_mark = p->mark;
17359 void **_children = PyMem_Malloc(sizeof(void *));
17360 if (!_children) {
17361 p->error_indicator = 1;
17362 PyErr_NoMemory();
17363 D(p->level--);
17364 return NULL;
17365 }
17366 ssize_t _children_capacity = 1;
17367 ssize_t _n = 0;
17368 { // ('.' | '...')
17369 if (p->error_indicator) {
17370 D(p->level--);
17371 return NULL;
17372 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017373 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000017374 void *_tmp_138_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017375 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000017376 (_tmp_138_var = _tmp_138_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017377 )
17378 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000017379 _res = _tmp_138_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017380 if (_n == _children_capacity) {
17381 _children_capacity *= 2;
17382 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17383 if (!_new_children) {
17384 p->error_indicator = 1;
17385 PyErr_NoMemory();
17386 D(p->level--);
17387 return NULL;
17388 }
17389 _children = _new_children;
17390 }
17391 _children[_n++] = _res;
17392 _mark = p->mark;
17393 }
17394 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017395 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17397 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017398 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017399 if (!_seq) {
17400 PyMem_Free(_children);
17401 p->error_indicator = 1;
17402 PyErr_NoMemory();
17403 D(p->level--);
17404 return NULL;
17405 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017406 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017407 PyMem_Free(_children);
17408 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17409 D(p->level--);
17410 return _seq;
17411}
17412
17413// _loop1_32: ('.' | '...')
17414static asdl_seq *
17415_loop1_32_rule(Parser *p)
17416{
17417 D(p->level++);
17418 if (p->error_indicator) {
17419 D(p->level--);
17420 return NULL;
17421 }
17422 void *_res = NULL;
17423 int _mark = p->mark;
17424 int _start_mark = p->mark;
17425 void **_children = PyMem_Malloc(sizeof(void *));
17426 if (!_children) {
17427 p->error_indicator = 1;
17428 PyErr_NoMemory();
17429 D(p->level--);
17430 return NULL;
17431 }
17432 ssize_t _children_capacity = 1;
17433 ssize_t _n = 0;
17434 { // ('.' | '...')
17435 if (p->error_indicator) {
17436 D(p->level--);
17437 return NULL;
17438 }
17439 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000017440 void *_tmp_139_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017441 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000017442 (_tmp_139_var = _tmp_139_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017443 )
17444 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000017445 _res = _tmp_139_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017446 if (_n == _children_capacity) {
17447 _children_capacity *= 2;
17448 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17449 if (!_new_children) {
17450 p->error_indicator = 1;
17451 PyErr_NoMemory();
17452 D(p->level--);
17453 return NULL;
17454 }
17455 _children = _new_children;
17456 }
17457 _children[_n++] = _res;
17458 _mark = p->mark;
17459 }
17460 p->mark = _mark;
17461 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17463 }
17464 if (_n == 0 || p->error_indicator) {
17465 PyMem_Free(_children);
17466 D(p->level--);
17467 return NULL;
17468 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017469 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017470 if (!_seq) {
17471 PyMem_Free(_children);
17472 p->error_indicator = 1;
17473 PyErr_NoMemory();
17474 D(p->level--);
17475 return NULL;
17476 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017477 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017478 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017479 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017480 D(p->level--);
17481 return _seq;
17482}
17483
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017484// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017485static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017486_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017487{
17488 D(p->level++);
17489 if (p->error_indicator) {
17490 D(p->level--);
17491 return NULL;
17492 }
17493 void *_res = NULL;
17494 int _mark = p->mark;
17495 int _start_mark = p->mark;
17496 void **_children = PyMem_Malloc(sizeof(void *));
17497 if (!_children) {
17498 p->error_indicator = 1;
17499 PyErr_NoMemory();
17500 D(p->level--);
17501 return NULL;
17502 }
17503 ssize_t _children_capacity = 1;
17504 ssize_t _n = 0;
17505 { // ',' import_from_as_name
17506 if (p->error_indicator) {
17507 D(p->level--);
17508 return NULL;
17509 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017510 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 +010017511 Token * _literal;
17512 alias_ty elem;
17513 while (
17514 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17515 &&
17516 (elem = import_from_as_name_rule(p)) // import_from_as_name
17517 )
17518 {
17519 _res = elem;
17520 if (_res == NULL && PyErr_Occurred()) {
17521 p->error_indicator = 1;
17522 PyMem_Free(_children);
17523 D(p->level--);
17524 return NULL;
17525 }
17526 if (_n == _children_capacity) {
17527 _children_capacity *= 2;
17528 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17529 if (!_new_children) {
17530 p->error_indicator = 1;
17531 PyErr_NoMemory();
17532 D(p->level--);
17533 return NULL;
17534 }
17535 _children = _new_children;
17536 }
17537 _children[_n++] = _res;
17538 _mark = p->mark;
17539 }
17540 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017541 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
17543 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017544 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017545 if (!_seq) {
17546 PyMem_Free(_children);
17547 p->error_indicator = 1;
17548 PyErr_NoMemory();
17549 D(p->level--);
17550 return NULL;
17551 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017552 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017553 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017554 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017555 D(p->level--);
17556 return _seq;
17557}
17558
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017559// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017560static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017561_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017562{
17563 D(p->level++);
17564 if (p->error_indicator) {
17565 D(p->level--);
17566 return NULL;
17567 }
17568 asdl_seq * _res = NULL;
17569 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017570 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017571 if (p->error_indicator) {
17572 D(p->level--);
17573 return NULL;
17574 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017575 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 +010017576 alias_ty elem;
17577 asdl_seq * seq;
17578 if (
17579 (elem = import_from_as_name_rule(p)) // import_from_as_name
17580 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017581 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017582 )
17583 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017584 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 +010017585 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17586 goto done;
17587 }
17588 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017589 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017591 }
17592 _res = NULL;
17593 done:
17594 D(p->level--);
17595 return _res;
17596}
17597
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017598// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017599static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017600_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017601{
17602 D(p->level++);
17603 if (p->error_indicator) {
17604 D(p->level--);
17605 return NULL;
17606 }
17607 void * _res = NULL;
17608 int _mark = p->mark;
17609 { // 'as' NAME
17610 if (p->error_indicator) {
17611 D(p->level--);
17612 return NULL;
17613 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017614 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017615 Token * _keyword;
17616 expr_ty z;
17617 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017618 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017619 &&
17620 (z = _PyPegen_name_token(p)) // NAME
17621 )
17622 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017623 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 +010017624 _res = z;
17625 if (_res == NULL && PyErr_Occurred()) {
17626 p->error_indicator = 1;
17627 D(p->level--);
17628 return NULL;
17629 }
17630 goto done;
17631 }
17632 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017633 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
17635 }
17636 _res = NULL;
17637 done:
17638 D(p->level--);
17639 return _res;
17640}
17641
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017642// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017643static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017644_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017645{
17646 D(p->level++);
17647 if (p->error_indicator) {
17648 D(p->level--);
17649 return NULL;
17650 }
17651 void *_res = NULL;
17652 int _mark = p->mark;
17653 int _start_mark = p->mark;
17654 void **_children = PyMem_Malloc(sizeof(void *));
17655 if (!_children) {
17656 p->error_indicator = 1;
17657 PyErr_NoMemory();
17658 D(p->level--);
17659 return NULL;
17660 }
17661 ssize_t _children_capacity = 1;
17662 ssize_t _n = 0;
17663 { // ',' dotted_as_name
17664 if (p->error_indicator) {
17665 D(p->level--);
17666 return NULL;
17667 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017668 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 +010017669 Token * _literal;
17670 alias_ty elem;
17671 while (
17672 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17673 &&
17674 (elem = dotted_as_name_rule(p)) // dotted_as_name
17675 )
17676 {
17677 _res = elem;
17678 if (_res == NULL && PyErr_Occurred()) {
17679 p->error_indicator = 1;
17680 PyMem_Free(_children);
17681 D(p->level--);
17682 return NULL;
17683 }
17684 if (_n == _children_capacity) {
17685 _children_capacity *= 2;
17686 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17687 if (!_new_children) {
17688 p->error_indicator = 1;
17689 PyErr_NoMemory();
17690 D(p->level--);
17691 return NULL;
17692 }
17693 _children = _new_children;
17694 }
17695 _children[_n++] = _res;
17696 _mark = p->mark;
17697 }
17698 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017699 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
17701 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017702 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017703 if (!_seq) {
17704 PyMem_Free(_children);
17705 p->error_indicator = 1;
17706 PyErr_NoMemory();
17707 D(p->level--);
17708 return NULL;
17709 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017710 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017711 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017712 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017713 D(p->level--);
17714 return _seq;
17715}
17716
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017717// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017718static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017719_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017720{
17721 D(p->level++);
17722 if (p->error_indicator) {
17723 D(p->level--);
17724 return NULL;
17725 }
17726 asdl_seq * _res = NULL;
17727 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017728 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017729 if (p->error_indicator) {
17730 D(p->level--);
17731 return NULL;
17732 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017733 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 +010017734 alias_ty elem;
17735 asdl_seq * seq;
17736 if (
17737 (elem = dotted_as_name_rule(p)) // dotted_as_name
17738 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017739 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017740 )
17741 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017742 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 +010017743 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17744 goto done;
17745 }
17746 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017747 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
17748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017749 }
17750 _res = NULL;
17751 done:
17752 D(p->level--);
17753 return _res;
17754}
17755
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017756// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017757static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017758_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017759{
17760 D(p->level++);
17761 if (p->error_indicator) {
17762 D(p->level--);
17763 return NULL;
17764 }
17765 void * _res = NULL;
17766 int _mark = p->mark;
17767 { // 'as' NAME
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> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017773 Token * _keyword;
17774 expr_ty z;
17775 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017776 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017777 &&
17778 (z = _PyPegen_name_token(p)) // NAME
17779 )
17780 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017781 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 +010017782 _res = z;
17783 if (_res == NULL && PyErr_Occurred()) {
17784 p->error_indicator = 1;
17785 D(p->level--);
17786 return NULL;
17787 }
17788 goto done;
17789 }
17790 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017791 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
17793 }
17794 _res = NULL;
17795 done:
17796 D(p->level--);
17797 return _res;
17798}
17799
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017800// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017801static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017802_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017803{
17804 D(p->level++);
17805 if (p->error_indicator) {
17806 D(p->level--);
17807 return NULL;
17808 }
17809 void *_res = NULL;
17810 int _mark = p->mark;
17811 int _start_mark = p->mark;
17812 void **_children = PyMem_Malloc(sizeof(void *));
17813 if (!_children) {
17814 p->error_indicator = 1;
17815 PyErr_NoMemory();
17816 D(p->level--);
17817 return NULL;
17818 }
17819 ssize_t _children_capacity = 1;
17820 ssize_t _n = 0;
17821 { // ',' with_item
17822 if (p->error_indicator) {
17823 D(p->level--);
17824 return NULL;
17825 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017826 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017827 Token * _literal;
17828 withitem_ty elem;
17829 while (
17830 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17831 &&
17832 (elem = with_item_rule(p)) // with_item
17833 )
17834 {
17835 _res = elem;
17836 if (_res == NULL && PyErr_Occurred()) {
17837 p->error_indicator = 1;
17838 PyMem_Free(_children);
17839 D(p->level--);
17840 return NULL;
17841 }
17842 if (_n == _children_capacity) {
17843 _children_capacity *= 2;
17844 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17845 if (!_new_children) {
17846 p->error_indicator = 1;
17847 PyErr_NoMemory();
17848 D(p->level--);
17849 return NULL;
17850 }
17851 _children = _new_children;
17852 }
17853 _children[_n++] = _res;
17854 _mark = p->mark;
17855 }
17856 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017857 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
17859 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017860 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017861 if (!_seq) {
17862 PyMem_Free(_children);
17863 p->error_indicator = 1;
17864 PyErr_NoMemory();
17865 D(p->level--);
17866 return NULL;
17867 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017868 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017869 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017870 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017871 D(p->level--);
17872 return _seq;
17873}
17874
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017875// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017876static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017877_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017878{
17879 D(p->level++);
17880 if (p->error_indicator) {
17881 D(p->level--);
17882 return NULL;
17883 }
17884 asdl_seq * _res = NULL;
17885 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017886 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017887 if (p->error_indicator) {
17888 D(p->level--);
17889 return NULL;
17890 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017891 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 +010017892 withitem_ty elem;
17893 asdl_seq * seq;
17894 if (
17895 (elem = with_item_rule(p)) // with_item
17896 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017897 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017898 )
17899 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017900 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 +010017901 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17902 goto done;
17903 }
17904 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017905 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
17906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017907 }
17908 _res = NULL;
17909 done:
17910 D(p->level--);
17911 return _res;
17912}
17913
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017914// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017915static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017916_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017917{
17918 D(p->level++);
17919 if (p->error_indicator) {
17920 D(p->level--);
17921 return NULL;
17922 }
17923 void *_res = NULL;
17924 int _mark = p->mark;
17925 int _start_mark = p->mark;
17926 void **_children = PyMem_Malloc(sizeof(void *));
17927 if (!_children) {
17928 p->error_indicator = 1;
17929 PyErr_NoMemory();
17930 D(p->level--);
17931 return NULL;
17932 }
17933 ssize_t _children_capacity = 1;
17934 ssize_t _n = 0;
17935 { // ',' with_item
17936 if (p->error_indicator) {
17937 D(p->level--);
17938 return NULL;
17939 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017940 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017941 Token * _literal;
17942 withitem_ty elem;
17943 while (
17944 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17945 &&
17946 (elem = with_item_rule(p)) // with_item
17947 )
17948 {
17949 _res = elem;
17950 if (_res == NULL && PyErr_Occurred()) {
17951 p->error_indicator = 1;
17952 PyMem_Free(_children);
17953 D(p->level--);
17954 return NULL;
17955 }
17956 if (_n == _children_capacity) {
17957 _children_capacity *= 2;
17958 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17959 if (!_new_children) {
17960 p->error_indicator = 1;
17961 PyErr_NoMemory();
17962 D(p->level--);
17963 return NULL;
17964 }
17965 _children = _new_children;
17966 }
17967 _children[_n++] = _res;
17968 _mark = p->mark;
17969 }
17970 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017971 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
17973 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017974 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017975 if (!_seq) {
17976 PyMem_Free(_children);
17977 p->error_indicator = 1;
17978 PyErr_NoMemory();
17979 D(p->level--);
17980 return NULL;
17981 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017982 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017983 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017984 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017985 D(p->level--);
17986 return _seq;
17987}
17988
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017989// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017990static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017991_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017992{
17993 D(p->level++);
17994 if (p->error_indicator) {
17995 D(p->level--);
17996 return NULL;
17997 }
17998 asdl_seq * _res = NULL;
17999 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018000 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018001 if (p->error_indicator) {
18002 D(p->level--);
18003 return NULL;
18004 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018005 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 +010018006 withitem_ty elem;
18007 asdl_seq * seq;
18008 if (
18009 (elem = with_item_rule(p)) // with_item
18010 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018011 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018012 )
18013 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018014 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 +010018015 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18016 goto done;
18017 }
18018 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018019 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018021 }
18022 _res = NULL;
18023 done:
18024 D(p->level--);
18025 return _res;
18026}
18027
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018028// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018029static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018030_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018031{
18032 D(p->level++);
18033 if (p->error_indicator) {
18034 D(p->level--);
18035 return NULL;
18036 }
18037 void *_res = NULL;
18038 int _mark = p->mark;
18039 int _start_mark = p->mark;
18040 void **_children = PyMem_Malloc(sizeof(void *));
18041 if (!_children) {
18042 p->error_indicator = 1;
18043 PyErr_NoMemory();
18044 D(p->level--);
18045 return NULL;
18046 }
18047 ssize_t _children_capacity = 1;
18048 ssize_t _n = 0;
18049 { // ',' with_item
18050 if (p->error_indicator) {
18051 D(p->level--);
18052 return NULL;
18053 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018054 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018055 Token * _literal;
18056 withitem_ty elem;
18057 while (
18058 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18059 &&
18060 (elem = with_item_rule(p)) // with_item
18061 )
18062 {
18063 _res = elem;
18064 if (_res == NULL && PyErr_Occurred()) {
18065 p->error_indicator = 1;
18066 PyMem_Free(_children);
18067 D(p->level--);
18068 return NULL;
18069 }
18070 if (_n == _children_capacity) {
18071 _children_capacity *= 2;
18072 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18073 if (!_new_children) {
18074 p->error_indicator = 1;
18075 PyErr_NoMemory();
18076 D(p->level--);
18077 return NULL;
18078 }
18079 _children = _new_children;
18080 }
18081 _children[_n++] = _res;
18082 _mark = p->mark;
18083 }
18084 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018085 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18087 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018088 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018089 if (!_seq) {
18090 PyMem_Free(_children);
18091 p->error_indicator = 1;
18092 PyErr_NoMemory();
18093 D(p->level--);
18094 return NULL;
18095 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018096 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018097 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018098 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018099 D(p->level--);
18100 return _seq;
18101}
18102
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018103// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018104static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018105_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018106{
18107 D(p->level++);
18108 if (p->error_indicator) {
18109 D(p->level--);
18110 return NULL;
18111 }
18112 asdl_seq * _res = NULL;
18113 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018114 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018115 if (p->error_indicator) {
18116 D(p->level--);
18117 return NULL;
18118 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018119 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 +010018120 withitem_ty elem;
18121 asdl_seq * seq;
18122 if (
18123 (elem = with_item_rule(p)) // with_item
18124 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018125 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018126 )
18127 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018128 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 +010018129 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18130 goto done;
18131 }
18132 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018133 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018135 }
18136 _res = NULL;
18137 done:
18138 D(p->level--);
18139 return _res;
18140}
18141
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018142// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018143static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018144_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018145{
18146 D(p->level++);
18147 if (p->error_indicator) {
18148 D(p->level--);
18149 return NULL;
18150 }
18151 void *_res = NULL;
18152 int _mark = p->mark;
18153 int _start_mark = p->mark;
18154 void **_children = PyMem_Malloc(sizeof(void *));
18155 if (!_children) {
18156 p->error_indicator = 1;
18157 PyErr_NoMemory();
18158 D(p->level--);
18159 return NULL;
18160 }
18161 ssize_t _children_capacity = 1;
18162 ssize_t _n = 0;
18163 { // ',' with_item
18164 if (p->error_indicator) {
18165 D(p->level--);
18166 return NULL;
18167 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018168 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018169 Token * _literal;
18170 withitem_ty elem;
18171 while (
18172 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18173 &&
18174 (elem = with_item_rule(p)) // with_item
18175 )
18176 {
18177 _res = elem;
18178 if (_res == NULL && PyErr_Occurred()) {
18179 p->error_indicator = 1;
18180 PyMem_Free(_children);
18181 D(p->level--);
18182 return NULL;
18183 }
18184 if (_n == _children_capacity) {
18185 _children_capacity *= 2;
18186 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18187 if (!_new_children) {
18188 p->error_indicator = 1;
18189 PyErr_NoMemory();
18190 D(p->level--);
18191 return NULL;
18192 }
18193 _children = _new_children;
18194 }
18195 _children[_n++] = _res;
18196 _mark = p->mark;
18197 }
18198 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018199 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18201 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018202 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018203 if (!_seq) {
18204 PyMem_Free(_children);
18205 p->error_indicator = 1;
18206 PyErr_NoMemory();
18207 D(p->level--);
18208 return NULL;
18209 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018210 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018211 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018212 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018213 D(p->level--);
18214 return _seq;
18215}
18216
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018217// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018218static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018219_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018220{
18221 D(p->level++);
18222 if (p->error_indicator) {
18223 D(p->level--);
18224 return NULL;
18225 }
18226 asdl_seq * _res = NULL;
18227 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018228 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018229 if (p->error_indicator) {
18230 D(p->level--);
18231 return NULL;
18232 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018233 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 +010018234 withitem_ty elem;
18235 asdl_seq * seq;
18236 if (
18237 (elem = with_item_rule(p)) // with_item
18238 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018239 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018240 )
18241 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018242 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 +010018243 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18244 goto done;
18245 }
18246 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018247 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018249 }
18250 _res = NULL;
18251 done:
18252 D(p->level--);
18253 return _res;
18254}
18255
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018256// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018257static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018258_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018259{
18260 D(p->level++);
18261 if (p->error_indicator) {
18262 D(p->level--);
18263 return NULL;
18264 }
18265 void * _res = NULL;
18266 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018267 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018268 if (p->error_indicator) {
18269 D(p->level--);
18270 return NULL;
18271 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018272 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18273 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018274 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018275 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018276 )
18277 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018278 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18279 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018280 goto done;
18281 }
18282 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018283 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18285 }
18286 { // ')'
18287 if (p->error_indicator) {
18288 D(p->level--);
18289 return NULL;
18290 }
18291 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18292 Token * _literal;
18293 if (
18294 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18295 )
18296 {
18297 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18298 _res = _literal;
18299 goto done;
18300 }
18301 p->mark = _mark;
18302 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18304 }
18305 { // ':'
18306 if (p->error_indicator) {
18307 D(p->level--);
18308 return NULL;
18309 }
18310 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18311 Token * _literal;
18312 if (
18313 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18314 )
18315 {
18316 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18317 _res = _literal;
18318 goto done;
18319 }
18320 p->mark = _mark;
18321 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018323 }
18324 _res = NULL;
18325 done:
18326 D(p->level--);
18327 return _res;
18328}
18329
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018330// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018331static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018332_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018333{
18334 D(p->level++);
18335 if (p->error_indicator) {
18336 D(p->level--);
18337 return NULL;
18338 }
18339 void *_res = NULL;
18340 int _mark = p->mark;
18341 int _start_mark = p->mark;
18342 void **_children = PyMem_Malloc(sizeof(void *));
18343 if (!_children) {
18344 p->error_indicator = 1;
18345 PyErr_NoMemory();
18346 D(p->level--);
18347 return NULL;
18348 }
18349 ssize_t _children_capacity = 1;
18350 ssize_t _n = 0;
18351 { // except_block
18352 if (p->error_indicator) {
18353 D(p->level--);
18354 return NULL;
18355 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018356 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018357 excepthandler_ty except_block_var;
18358 while (
18359 (except_block_var = except_block_rule(p)) // except_block
18360 )
18361 {
18362 _res = except_block_var;
18363 if (_n == _children_capacity) {
18364 _children_capacity *= 2;
18365 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18366 if (!_new_children) {
18367 p->error_indicator = 1;
18368 PyErr_NoMemory();
18369 D(p->level--);
18370 return NULL;
18371 }
18372 _children = _new_children;
18373 }
18374 _children[_n++] = _res;
18375 _mark = p->mark;
18376 }
18377 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018378 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
18380 }
18381 if (_n == 0 || p->error_indicator) {
18382 PyMem_Free(_children);
18383 D(p->level--);
18384 return NULL;
18385 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018386 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018387 if (!_seq) {
18388 PyMem_Free(_children);
18389 p->error_indicator = 1;
18390 PyErr_NoMemory();
18391 D(p->level--);
18392 return NULL;
18393 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018394 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018395 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018396 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018397 D(p->level--);
18398 return _seq;
18399}
18400
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018401// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018402static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018403_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018404{
18405 D(p->level++);
18406 if (p->error_indicator) {
18407 D(p->level--);
18408 return NULL;
18409 }
18410 void * _res = NULL;
18411 int _mark = p->mark;
18412 { // 'as' NAME
18413 if (p->error_indicator) {
18414 D(p->level--);
18415 return NULL;
18416 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018417 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018418 Token * _keyword;
18419 expr_ty z;
18420 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018421 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018422 &&
18423 (z = _PyPegen_name_token(p)) // NAME
18424 )
18425 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018426 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 +010018427 _res = z;
18428 if (_res == NULL && PyErr_Occurred()) {
18429 p->error_indicator = 1;
18430 D(p->level--);
18431 return NULL;
18432 }
18433 goto done;
18434 }
18435 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018436 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18438 }
18439 _res = NULL;
18440 done:
18441 D(p->level--);
18442 return _res;
18443}
18444
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018445// _tmp_50: 'from' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018446static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018447_tmp_50_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018448{
18449 D(p->level++);
18450 if (p->error_indicator) {
18451 D(p->level--);
18452 return NULL;
18453 }
18454 void * _res = NULL;
18455 int _mark = p->mark;
18456 { // 'from' expression
18457 if (p->error_indicator) {
18458 D(p->level--);
18459 return NULL;
18460 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018461 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018462 Token * _keyword;
18463 expr_ty z;
18464 if (
18465 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
18466 &&
18467 (z = expression_rule(p)) // expression
18468 )
18469 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018470 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 +010018471 _res = z;
18472 if (_res == NULL && PyErr_Occurred()) {
18473 p->error_indicator = 1;
18474 D(p->level--);
18475 return NULL;
18476 }
18477 goto done;
18478 }
18479 p->mark = _mark;
18480 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018482 }
18483 _res = NULL;
18484 done:
18485 D(p->level--);
18486 return _res;
18487}
18488
18489// _tmp_51: '->' expression
18490static void *
18491_tmp_51_rule(Parser *p)
18492{
18493 D(p->level++);
18494 if (p->error_indicator) {
18495 D(p->level--);
18496 return NULL;
18497 }
18498 void * _res = NULL;
18499 int _mark = p->mark;
18500 { // '->' expression
18501 if (p->error_indicator) {
18502 D(p->level--);
18503 return NULL;
18504 }
18505 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18506 Token * _literal;
18507 expr_ty z;
18508 if (
18509 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18510 &&
18511 (z = expression_rule(p)) // expression
18512 )
18513 {
18514 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18515 _res = z;
18516 if (_res == NULL && PyErr_Occurred()) {
18517 p->error_indicator = 1;
18518 D(p->level--);
18519 return NULL;
18520 }
18521 goto done;
18522 }
18523 p->mark = _mark;
18524 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18526 }
18527 _res = NULL;
18528 done:
18529 D(p->level--);
18530 return _res;
18531}
18532
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018533// _tmp_52: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018534static void *
18535_tmp_52_rule(Parser *p)
18536{
18537 D(p->level++);
18538 if (p->error_indicator) {
18539 D(p->level--);
18540 return NULL;
18541 }
18542 void * _res = NULL;
18543 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018544 { // '->' expression
18545 if (p->error_indicator) {
18546 D(p->level--);
18547 return NULL;
18548 }
18549 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18550 Token * _literal;
18551 expr_ty z;
18552 if (
18553 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18554 &&
18555 (z = expression_rule(p)) // expression
18556 )
18557 {
18558 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18559 _res = z;
18560 if (_res == NULL && PyErr_Occurred()) {
18561 p->error_indicator = 1;
18562 D(p->level--);
18563 return NULL;
18564 }
18565 goto done;
18566 }
18567 p->mark = _mark;
18568 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18570 }
18571 _res = NULL;
18572 done:
18573 D(p->level--);
18574 return _res;
18575}
18576
18577// _tmp_53: NEWLINE INDENT
18578static void *
18579_tmp_53_rule(Parser *p)
18580{
18581 D(p->level++);
18582 if (p->error_indicator) {
18583 D(p->level--);
18584 return NULL;
18585 }
18586 void * _res = NULL;
18587 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018588 { // NEWLINE INDENT
18589 if (p->error_indicator) {
18590 D(p->level--);
18591 return NULL;
18592 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018593 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018594 Token * indent_var;
18595 Token * newline_var;
18596 if (
18597 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18598 &&
18599 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18600 )
18601 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018602 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 +010018603 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
18604 goto done;
18605 }
18606 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018607 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
18609 }
18610 _res = NULL;
18611 done:
18612 D(p->level--);
18613 return _res;
18614}
18615
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018616// _loop0_54: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018617static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018618_loop0_54_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 void *_res = NULL;
18626 int _mark = p->mark;
18627 int _start_mark = p->mark;
18628 void **_children = PyMem_Malloc(sizeof(void *));
18629 if (!_children) {
18630 p->error_indicator = 1;
18631 PyErr_NoMemory();
18632 D(p->level--);
18633 return NULL;
18634 }
18635 ssize_t _children_capacity = 1;
18636 ssize_t _n = 0;
18637 { // param_no_default
18638 if (p->error_indicator) {
18639 D(p->level--);
18640 return NULL;
18641 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018642 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 +010018643 arg_ty param_no_default_var;
18644 while (
18645 (param_no_default_var = param_no_default_rule(p)) // param_no_default
18646 )
18647 {
18648 _res = param_no_default_var;
18649 if (_n == _children_capacity) {
18650 _children_capacity *= 2;
18651 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18652 if (!_new_children) {
18653 p->error_indicator = 1;
18654 PyErr_NoMemory();
18655 D(p->level--);
18656 return NULL;
18657 }
18658 _children = _new_children;
18659 }
18660 _children[_n++] = _res;
18661 _mark = p->mark;
18662 }
18663 p->mark = _mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018664 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018666 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018667 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018668 if (!_seq) {
18669 PyMem_Free(_children);
18670 p->error_indicator = 1;
18671 PyErr_NoMemory();
18672 D(p->level--);
18673 return NULL;
18674 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018675 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018676 PyMem_Free(_children);
18677 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
18678 D(p->level--);
18679 return _seq;
18680}
18681
18682// _loop0_55: param_with_default
18683static asdl_seq *
18684_loop0_55_rule(Parser *p)
18685{
18686 D(p->level++);
18687 if (p->error_indicator) {
18688 D(p->level--);
18689 return NULL;
18690 }
18691 void *_res = NULL;
18692 int _mark = p->mark;
18693 int _start_mark = p->mark;
18694 void **_children = PyMem_Malloc(sizeof(void *));
18695 if (!_children) {
18696 p->error_indicator = 1;
18697 PyErr_NoMemory();
18698 D(p->level--);
18699 return NULL;
18700 }
18701 ssize_t _children_capacity = 1;
18702 ssize_t _n = 0;
18703 { // param_with_default
18704 if (p->error_indicator) {
18705 D(p->level--);
18706 return NULL;
18707 }
18708 D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18709 NameDefaultPair* param_with_default_var;
18710 while (
18711 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18712 )
18713 {
18714 _res = param_with_default_var;
18715 if (_n == _children_capacity) {
18716 _children_capacity *= 2;
18717 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18718 if (!_new_children) {
18719 p->error_indicator = 1;
18720 PyErr_NoMemory();
18721 D(p->level--);
18722 return NULL;
18723 }
18724 _children = _new_children;
18725 }
18726 _children[_n++] = _res;
18727 _mark = p->mark;
18728 }
18729 p->mark = _mark;
18730 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18732 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018733 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018734 if (!_seq) {
18735 PyMem_Free(_children);
18736 p->error_indicator = 1;
18737 PyErr_NoMemory();
18738 D(p->level--);
18739 return NULL;
18740 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018741 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018742 PyMem_Free(_children);
18743 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
18744 D(p->level--);
18745 return _seq;
18746}
18747
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018748// _loop0_56: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018749static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018750_loop0_56_rule(Parser *p)
18751{
18752 D(p->level++);
18753 if (p->error_indicator) {
18754 D(p->level--);
18755 return NULL;
18756 }
18757 void *_res = NULL;
18758 int _mark = p->mark;
18759 int _start_mark = p->mark;
18760 void **_children = PyMem_Malloc(sizeof(void *));
18761 if (!_children) {
18762 p->error_indicator = 1;
18763 PyErr_NoMemory();
18764 D(p->level--);
18765 return NULL;
18766 }
18767 ssize_t _children_capacity = 1;
18768 ssize_t _n = 0;
18769 { // param_with_default
18770 if (p->error_indicator) {
18771 D(p->level--);
18772 return NULL;
18773 }
18774 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18775 NameDefaultPair* param_with_default_var;
18776 while (
18777 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18778 )
18779 {
18780 _res = param_with_default_var;
18781 if (_n == _children_capacity) {
18782 _children_capacity *= 2;
18783 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18784 if (!_new_children) {
18785 p->error_indicator = 1;
18786 PyErr_NoMemory();
18787 D(p->level--);
18788 return NULL;
18789 }
18790 _children = _new_children;
18791 }
18792 _children[_n++] = _res;
18793 _mark = p->mark;
18794 }
18795 p->mark = _mark;
18796 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
18797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18798 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018799 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018800 if (!_seq) {
18801 PyMem_Free(_children);
18802 p->error_indicator = 1;
18803 PyErr_NoMemory();
18804 D(p->level--);
18805 return NULL;
18806 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018807 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018808 PyMem_Free(_children);
18809 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
18810 D(p->level--);
18811 return _seq;
18812}
18813
18814// _loop1_57: param_no_default
18815static asdl_seq *
18816_loop1_57_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018817{
18818 D(p->level++);
18819 if (p->error_indicator) {
18820 D(p->level--);
18821 return NULL;
18822 }
18823 void *_res = NULL;
18824 int _mark = p->mark;
18825 int _start_mark = p->mark;
18826 void **_children = PyMem_Malloc(sizeof(void *));
18827 if (!_children) {
18828 p->error_indicator = 1;
18829 PyErr_NoMemory();
18830 D(p->level--);
18831 return NULL;
18832 }
18833 ssize_t _children_capacity = 1;
18834 ssize_t _n = 0;
18835 { // param_no_default
18836 if (p->error_indicator) {
18837 D(p->level--);
18838 return NULL;
18839 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018840 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 +010018841 arg_ty param_no_default_var;
18842 while (
18843 (param_no_default_var = param_no_default_rule(p)) // param_no_default
18844 )
18845 {
18846 _res = param_no_default_var;
18847 if (_n == _children_capacity) {
18848 _children_capacity *= 2;
18849 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18850 if (!_new_children) {
18851 p->error_indicator = 1;
18852 PyErr_NoMemory();
18853 D(p->level--);
18854 return NULL;
18855 }
18856 _children = _new_children;
18857 }
18858 _children[_n++] = _res;
18859 _mark = p->mark;
18860 }
18861 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018862 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
18864 }
18865 if (_n == 0 || p->error_indicator) {
18866 PyMem_Free(_children);
18867 D(p->level--);
18868 return NULL;
18869 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018870 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018871 if (!_seq) {
18872 PyMem_Free(_children);
18873 p->error_indicator = 1;
18874 PyErr_NoMemory();
18875 D(p->level--);
18876 return NULL;
18877 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018878 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018879 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018880 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018881 D(p->level--);
18882 return _seq;
18883}
18884
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018885// _loop0_58: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018886static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018887_loop0_58_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018888{
18889 D(p->level++);
18890 if (p->error_indicator) {
18891 D(p->level--);
18892 return NULL;
18893 }
18894 void *_res = NULL;
18895 int _mark = p->mark;
18896 int _start_mark = p->mark;
18897 void **_children = PyMem_Malloc(sizeof(void *));
18898 if (!_children) {
18899 p->error_indicator = 1;
18900 PyErr_NoMemory();
18901 D(p->level--);
18902 return NULL;
18903 }
18904 ssize_t _children_capacity = 1;
18905 ssize_t _n = 0;
18906 { // param_with_default
18907 if (p->error_indicator) {
18908 D(p->level--);
18909 return NULL;
18910 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018911 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 +010018912 NameDefaultPair* param_with_default_var;
18913 while (
18914 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18915 )
18916 {
18917 _res = param_with_default_var;
18918 if (_n == _children_capacity) {
18919 _children_capacity *= 2;
18920 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18921 if (!_new_children) {
18922 p->error_indicator = 1;
18923 PyErr_NoMemory();
18924 D(p->level--);
18925 return NULL;
18926 }
18927 _children = _new_children;
18928 }
18929 _children[_n++] = _res;
18930 _mark = p->mark;
18931 }
18932 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018933 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18935 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018936 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018937 if (!_seq) {
18938 PyMem_Free(_children);
18939 p->error_indicator = 1;
18940 PyErr_NoMemory();
18941 D(p->level--);
18942 return NULL;
18943 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018944 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018945 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018946 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018947 D(p->level--);
18948 return _seq;
18949}
18950
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018951// _loop1_59: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018952static asdl_seq *
18953_loop1_59_rule(Parser *p)
18954{
18955 D(p->level++);
18956 if (p->error_indicator) {
18957 D(p->level--);
18958 return NULL;
18959 }
18960 void *_res = NULL;
18961 int _mark = p->mark;
18962 int _start_mark = p->mark;
18963 void **_children = PyMem_Malloc(sizeof(void *));
18964 if (!_children) {
18965 p->error_indicator = 1;
18966 PyErr_NoMemory();
18967 D(p->level--);
18968 return NULL;
18969 }
18970 ssize_t _children_capacity = 1;
18971 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018972 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018973 if (p->error_indicator) {
18974 D(p->level--);
18975 return NULL;
18976 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018977 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18978 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018979 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018980 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018981 )
18982 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018983 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018984 if (_n == _children_capacity) {
18985 _children_capacity *= 2;
18986 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18987 if (!_new_children) {
18988 p->error_indicator = 1;
18989 PyErr_NoMemory();
18990 D(p->level--);
18991 return NULL;
18992 }
18993 _children = _new_children;
18994 }
18995 _children[_n++] = _res;
18996 _mark = p->mark;
18997 }
18998 p->mark = _mark;
18999 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019001 }
19002 if (_n == 0 || p->error_indicator) {
19003 PyMem_Free(_children);
19004 D(p->level--);
19005 return NULL;
19006 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019007 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019008 if (!_seq) {
19009 PyMem_Free(_children);
19010 p->error_indicator = 1;
19011 PyErr_NoMemory();
19012 D(p->level--);
19013 return NULL;
19014 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019015 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019016 PyMem_Free(_children);
19017 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
19018 D(p->level--);
19019 return _seq;
19020}
19021
19022// _loop1_60: param_no_default
19023static asdl_seq *
19024_loop1_60_rule(Parser *p)
19025{
19026 D(p->level++);
19027 if (p->error_indicator) {
19028 D(p->level--);
19029 return NULL;
19030 }
19031 void *_res = NULL;
19032 int _mark = p->mark;
19033 int _start_mark = p->mark;
19034 void **_children = PyMem_Malloc(sizeof(void *));
19035 if (!_children) {
19036 p->error_indicator = 1;
19037 PyErr_NoMemory();
19038 D(p->level--);
19039 return NULL;
19040 }
19041 ssize_t _children_capacity = 1;
19042 ssize_t _n = 0;
19043 { // param_no_default
19044 if (p->error_indicator) {
19045 D(p->level--);
19046 return NULL;
19047 }
19048 D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19049 arg_ty param_no_default_var;
19050 while (
19051 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19052 )
19053 {
19054 _res = param_no_default_var;
19055 if (_n == _children_capacity) {
19056 _children_capacity *= 2;
19057 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19058 if (!_new_children) {
19059 p->error_indicator = 1;
19060 PyErr_NoMemory();
19061 D(p->level--);
19062 return NULL;
19063 }
19064 _children = _new_children;
19065 }
19066 _children[_n++] = _res;
19067 _mark = p->mark;
19068 }
19069 p->mark = _mark;
19070 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19072 }
19073 if (_n == 0 || p->error_indicator) {
19074 PyMem_Free(_children);
19075 D(p->level--);
19076 return NULL;
19077 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019078 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019079 if (!_seq) {
19080 PyMem_Free(_children);
19081 p->error_indicator = 1;
19082 PyErr_NoMemory();
19083 D(p->level--);
19084 return NULL;
19085 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019086 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019087 PyMem_Free(_children);
19088 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
19089 D(p->level--);
19090 return _seq;
19091}
19092
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019093// _loop1_61: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019094static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019095_loop1_61_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019096{
19097 D(p->level++);
19098 if (p->error_indicator) {
19099 D(p->level--);
19100 return NULL;
19101 }
19102 void *_res = NULL;
19103 int _mark = p->mark;
19104 int _start_mark = p->mark;
19105 void **_children = PyMem_Malloc(sizeof(void *));
19106 if (!_children) {
19107 p->error_indicator = 1;
19108 PyErr_NoMemory();
19109 D(p->level--);
19110 return NULL;
19111 }
19112 ssize_t _children_capacity = 1;
19113 ssize_t _n = 0;
19114 { // param_no_default
19115 if (p->error_indicator) {
19116 D(p->level--);
19117 return NULL;
19118 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019119 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 +010019120 arg_ty param_no_default_var;
19121 while (
19122 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19123 )
19124 {
19125 _res = param_no_default_var;
19126 if (_n == _children_capacity) {
19127 _children_capacity *= 2;
19128 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19129 if (!_new_children) {
19130 p->error_indicator = 1;
19131 PyErr_NoMemory();
19132 D(p->level--);
19133 return NULL;
19134 }
19135 _children = _new_children;
19136 }
19137 _children[_n++] = _res;
19138 _mark = p->mark;
19139 }
19140 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019141 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19143 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019144 if (_n == 0 || p->error_indicator) {
19145 PyMem_Free(_children);
19146 D(p->level--);
19147 return NULL;
19148 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019149 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019150 if (!_seq) {
19151 PyMem_Free(_children);
19152 p->error_indicator = 1;
19153 PyErr_NoMemory();
19154 D(p->level--);
19155 return NULL;
19156 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019157 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019158 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019159 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019160 D(p->level--);
19161 return _seq;
19162}
19163
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019164// _loop0_62: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019165static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019166_loop0_62_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019167{
19168 D(p->level++);
19169 if (p->error_indicator) {
19170 D(p->level--);
19171 return NULL;
19172 }
19173 void *_res = NULL;
19174 int _mark = p->mark;
19175 int _start_mark = p->mark;
19176 void **_children = PyMem_Malloc(sizeof(void *));
19177 if (!_children) {
19178 p->error_indicator = 1;
19179 PyErr_NoMemory();
19180 D(p->level--);
19181 return NULL;
19182 }
19183 ssize_t _children_capacity = 1;
19184 ssize_t _n = 0;
19185 { // param_no_default
19186 if (p->error_indicator) {
19187 D(p->level--);
19188 return NULL;
19189 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019190 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 +010019191 arg_ty param_no_default_var;
19192 while (
19193 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19194 )
19195 {
19196 _res = param_no_default_var;
19197 if (_n == _children_capacity) {
19198 _children_capacity *= 2;
19199 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19200 if (!_new_children) {
19201 p->error_indicator = 1;
19202 PyErr_NoMemory();
19203 D(p->level--);
19204 return NULL;
19205 }
19206 _children = _new_children;
19207 }
19208 _children[_n++] = _res;
19209 _mark = p->mark;
19210 }
19211 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019212 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19214 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019215 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019216 if (!_seq) {
19217 PyMem_Free(_children);
19218 p->error_indicator = 1;
19219 PyErr_NoMemory();
19220 D(p->level--);
19221 return NULL;
19222 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019223 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019224 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019225 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019226 D(p->level--);
19227 return _seq;
19228}
19229
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019230// _loop1_63: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019231static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019232_loop1_63_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019233{
19234 D(p->level++);
19235 if (p->error_indicator) {
19236 D(p->level--);
19237 return NULL;
19238 }
19239 void *_res = NULL;
19240 int _mark = p->mark;
19241 int _start_mark = p->mark;
19242 void **_children = PyMem_Malloc(sizeof(void *));
19243 if (!_children) {
19244 p->error_indicator = 1;
19245 PyErr_NoMemory();
19246 D(p->level--);
19247 return NULL;
19248 }
19249 ssize_t _children_capacity = 1;
19250 ssize_t _n = 0;
19251 { // param_with_default
19252 if (p->error_indicator) {
19253 D(p->level--);
19254 return NULL;
19255 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019256 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 +010019257 NameDefaultPair* param_with_default_var;
19258 while (
19259 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19260 )
19261 {
19262 _res = param_with_default_var;
19263 if (_n == _children_capacity) {
19264 _children_capacity *= 2;
19265 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19266 if (!_new_children) {
19267 p->error_indicator = 1;
19268 PyErr_NoMemory();
19269 D(p->level--);
19270 return NULL;
19271 }
19272 _children = _new_children;
19273 }
19274 _children[_n++] = _res;
19275 _mark = p->mark;
19276 }
19277 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019278 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19280 }
19281 if (_n == 0 || p->error_indicator) {
19282 PyMem_Free(_children);
19283 D(p->level--);
19284 return NULL;
19285 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019286 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019287 if (!_seq) {
19288 PyMem_Free(_children);
19289 p->error_indicator = 1;
19290 PyErr_NoMemory();
19291 D(p->level--);
19292 return NULL;
19293 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019294 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019295 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019296 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019297 D(p->level--);
19298 return _seq;
19299}
19300
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019301// _loop0_64: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019302static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019303_loop0_64_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019304{
19305 D(p->level++);
19306 if (p->error_indicator) {
19307 D(p->level--);
19308 return NULL;
19309 }
19310 void *_res = NULL;
19311 int _mark = p->mark;
19312 int _start_mark = p->mark;
19313 void **_children = PyMem_Malloc(sizeof(void *));
19314 if (!_children) {
19315 p->error_indicator = 1;
19316 PyErr_NoMemory();
19317 D(p->level--);
19318 return NULL;
19319 }
19320 ssize_t _children_capacity = 1;
19321 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019322 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019323 if (p->error_indicator) {
19324 D(p->level--);
19325 return NULL;
19326 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019327 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19328 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019329 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019330 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019331 )
19332 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019333 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019334 if (_n == _children_capacity) {
19335 _children_capacity *= 2;
19336 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19337 if (!_new_children) {
19338 p->error_indicator = 1;
19339 PyErr_NoMemory();
19340 D(p->level--);
19341 return NULL;
19342 }
19343 _children = _new_children;
19344 }
19345 _children[_n++] = _res;
19346 _mark = p->mark;
19347 }
19348 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019349 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019351 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019352 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019353 if (!_seq) {
19354 PyMem_Free(_children);
19355 p->error_indicator = 1;
19356 PyErr_NoMemory();
19357 D(p->level--);
19358 return NULL;
19359 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019360 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019361 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019362 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019363 D(p->level--);
19364 return _seq;
19365}
19366
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019367// _loop1_65: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019368static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019369_loop1_65_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019370{
19371 D(p->level++);
19372 if (p->error_indicator) {
19373 D(p->level--);
19374 return NULL;
19375 }
19376 void *_res = NULL;
19377 int _mark = p->mark;
19378 int _start_mark = p->mark;
19379 void **_children = PyMem_Malloc(sizeof(void *));
19380 if (!_children) {
19381 p->error_indicator = 1;
19382 PyErr_NoMemory();
19383 D(p->level--);
19384 return NULL;
19385 }
19386 ssize_t _children_capacity = 1;
19387 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019388 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019389 if (p->error_indicator) {
19390 D(p->level--);
19391 return NULL;
19392 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019393 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19394 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019395 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019396 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019397 )
19398 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019399 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019400 if (_n == _children_capacity) {
19401 _children_capacity *= 2;
19402 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19403 if (!_new_children) {
19404 p->error_indicator = 1;
19405 PyErr_NoMemory();
19406 D(p->level--);
19407 return NULL;
19408 }
19409 _children = _new_children;
19410 }
19411 _children[_n++] = _res;
19412 _mark = p->mark;
19413 }
19414 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019415 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019417 }
19418 if (_n == 0 || p->error_indicator) {
19419 PyMem_Free(_children);
19420 D(p->level--);
19421 return NULL;
19422 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019423 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019424 if (!_seq) {
19425 PyMem_Free(_children);
19426 p->error_indicator = 1;
19427 PyErr_NoMemory();
19428 D(p->level--);
19429 return NULL;
19430 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019431 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019432 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019433 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019434 D(p->level--);
19435 return _seq;
19436}
19437
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019438// _loop0_66: param_maybe_default
19439static asdl_seq *
19440_loop0_66_rule(Parser *p)
19441{
19442 D(p->level++);
19443 if (p->error_indicator) {
19444 D(p->level--);
19445 return NULL;
19446 }
19447 void *_res = NULL;
19448 int _mark = p->mark;
19449 int _start_mark = p->mark;
19450 void **_children = PyMem_Malloc(sizeof(void *));
19451 if (!_children) {
19452 p->error_indicator = 1;
19453 PyErr_NoMemory();
19454 D(p->level--);
19455 return NULL;
19456 }
19457 ssize_t _children_capacity = 1;
19458 ssize_t _n = 0;
19459 { // param_maybe_default
19460 if (p->error_indicator) {
19461 D(p->level--);
19462 return NULL;
19463 }
19464 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19465 NameDefaultPair* param_maybe_default_var;
19466 while (
19467 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19468 )
19469 {
19470 _res = param_maybe_default_var;
19471 if (_n == _children_capacity) {
19472 _children_capacity *= 2;
19473 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19474 if (!_new_children) {
19475 p->error_indicator = 1;
19476 PyErr_NoMemory();
19477 D(p->level--);
19478 return NULL;
19479 }
19480 _children = _new_children;
19481 }
19482 _children[_n++] = _res;
19483 _mark = p->mark;
19484 }
19485 p->mark = _mark;
19486 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19488 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019489 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019490 if (!_seq) {
19491 PyMem_Free(_children);
19492 p->error_indicator = 1;
19493 PyErr_NoMemory();
19494 D(p->level--);
19495 return NULL;
19496 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019497 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019498 PyMem_Free(_children);
19499 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19500 D(p->level--);
19501 return _seq;
19502}
19503
19504// _loop1_67: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019505static asdl_seq *
19506_loop1_67_rule(Parser *p)
19507{
19508 D(p->level++);
19509 if (p->error_indicator) {
19510 D(p->level--);
19511 return NULL;
19512 }
19513 void *_res = NULL;
19514 int _mark = p->mark;
19515 int _start_mark = p->mark;
19516 void **_children = PyMem_Malloc(sizeof(void *));
19517 if (!_children) {
19518 p->error_indicator = 1;
19519 PyErr_NoMemory();
19520 D(p->level--);
19521 return NULL;
19522 }
19523 ssize_t _children_capacity = 1;
19524 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019525 { // param_maybe_default
19526 if (p->error_indicator) {
19527 D(p->level--);
19528 return NULL;
19529 }
19530 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19531 NameDefaultPair* param_maybe_default_var;
19532 while (
19533 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19534 )
19535 {
19536 _res = param_maybe_default_var;
19537 if (_n == _children_capacity) {
19538 _children_capacity *= 2;
19539 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19540 if (!_new_children) {
19541 p->error_indicator = 1;
19542 PyErr_NoMemory();
19543 D(p->level--);
19544 return NULL;
19545 }
19546 _children = _new_children;
19547 }
19548 _children[_n++] = _res;
19549 _mark = p->mark;
19550 }
19551 p->mark = _mark;
19552 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19554 }
19555 if (_n == 0 || p->error_indicator) {
19556 PyMem_Free(_children);
19557 D(p->level--);
19558 return NULL;
19559 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019560 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019561 if (!_seq) {
19562 PyMem_Free(_children);
19563 p->error_indicator = 1;
19564 PyErr_NoMemory();
19565 D(p->level--);
19566 return NULL;
19567 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019568 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019569 PyMem_Free(_children);
19570 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19571 D(p->level--);
19572 return _seq;
19573}
19574
19575// _loop1_68: ('@' named_expression NEWLINE)
19576static asdl_seq *
19577_loop1_68_rule(Parser *p)
19578{
19579 D(p->level++);
19580 if (p->error_indicator) {
19581 D(p->level--);
19582 return NULL;
19583 }
19584 void *_res = NULL;
19585 int _mark = p->mark;
19586 int _start_mark = p->mark;
19587 void **_children = PyMem_Malloc(sizeof(void *));
19588 if (!_children) {
19589 p->error_indicator = 1;
19590 PyErr_NoMemory();
19591 D(p->level--);
19592 return NULL;
19593 }
19594 ssize_t _children_capacity = 1;
19595 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019596 { // ('@' named_expression NEWLINE)
19597 if (p->error_indicator) {
19598 D(p->level--);
19599 return NULL;
19600 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019601 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019602 void *_tmp_140_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019603 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019604 (_tmp_140_var = _tmp_140_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019605 )
19606 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019607 _res = _tmp_140_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019608 if (_n == _children_capacity) {
19609 _children_capacity *= 2;
19610 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19611 if (!_new_children) {
19612 p->error_indicator = 1;
19613 PyErr_NoMemory();
19614 D(p->level--);
19615 return NULL;
19616 }
19617 _children = _new_children;
19618 }
19619 _children[_n++] = _res;
19620 _mark = p->mark;
19621 }
19622 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019623 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
19625 }
19626 if (_n == 0 || p->error_indicator) {
19627 PyMem_Free(_children);
19628 D(p->level--);
19629 return NULL;
19630 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019631 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019632 if (!_seq) {
19633 PyMem_Free(_children);
19634 p->error_indicator = 1;
19635 PyErr_NoMemory();
19636 D(p->level--);
19637 return NULL;
19638 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019639 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019640 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019641 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019642 D(p->level--);
19643 return _seq;
19644}
19645
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019646// _tmp_69: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019647static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019648_tmp_69_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019649{
19650 D(p->level++);
19651 if (p->error_indicator) {
19652 D(p->level--);
19653 return NULL;
19654 }
19655 void * _res = NULL;
19656 int _mark = p->mark;
19657 { // '(' arguments? ')'
19658 if (p->error_indicator) {
19659 D(p->level--);
19660 return NULL;
19661 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019662 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019663 Token * _literal;
19664 Token * _literal_1;
19665 void *z;
19666 if (
19667 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19668 &&
19669 (z = arguments_rule(p), 1) // arguments?
19670 &&
19671 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19672 )
19673 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019674 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019675 _res = z;
19676 if (_res == NULL && PyErr_Occurred()) {
19677 p->error_indicator = 1;
19678 D(p->level--);
19679 return NULL;
19680 }
19681 goto done;
19682 }
19683 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019684 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
19686 }
19687 _res = NULL;
19688 done:
19689 D(p->level--);
19690 return _res;
19691}
19692
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019693// _loop1_70: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019694static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019695_loop1_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019696{
19697 D(p->level++);
19698 if (p->error_indicator) {
19699 D(p->level--);
19700 return NULL;
19701 }
19702 void *_res = NULL;
19703 int _mark = p->mark;
19704 int _start_mark = p->mark;
19705 void **_children = PyMem_Malloc(sizeof(void *));
19706 if (!_children) {
19707 p->error_indicator = 1;
19708 PyErr_NoMemory();
19709 D(p->level--);
19710 return NULL;
19711 }
19712 ssize_t _children_capacity = 1;
19713 ssize_t _n = 0;
19714 { // (',' star_expression)
19715 if (p->error_indicator) {
19716 D(p->level--);
19717 return NULL;
19718 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019719 D(fprintf(stderr, "%*c> _loop1_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
19720 void *_tmp_141_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019721 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019722 (_tmp_141_var = _tmp_141_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019723 )
19724 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019725 _res = _tmp_141_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019726 if (_n == _children_capacity) {
19727 _children_capacity *= 2;
19728 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19729 if (!_new_children) {
19730 p->error_indicator = 1;
19731 PyErr_NoMemory();
19732 D(p->level--);
19733 return NULL;
19734 }
19735 _children = _new_children;
19736 }
19737 _children[_n++] = _res;
19738 _mark = p->mark;
19739 }
19740 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019741 D(fprintf(stderr, "%*c%s _loop1_70[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
19743 }
19744 if (_n == 0 || p->error_indicator) {
19745 PyMem_Free(_children);
19746 D(p->level--);
19747 return NULL;
19748 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019749 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019750 if (!_seq) {
19751 PyMem_Free(_children);
19752 p->error_indicator = 1;
19753 PyErr_NoMemory();
19754 D(p->level--);
19755 return NULL;
19756 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019757 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019758 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019759 _PyPegen_insert_memo(p, _start_mark, _loop1_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019760 D(p->level--);
19761 return _seq;
19762}
19763
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019764// _loop0_72: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019765static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019766_loop0_72_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019767{
19768 D(p->level++);
19769 if (p->error_indicator) {
19770 D(p->level--);
19771 return NULL;
19772 }
19773 void *_res = NULL;
19774 int _mark = p->mark;
19775 int _start_mark = p->mark;
19776 void **_children = PyMem_Malloc(sizeof(void *));
19777 if (!_children) {
19778 p->error_indicator = 1;
19779 PyErr_NoMemory();
19780 D(p->level--);
19781 return NULL;
19782 }
19783 ssize_t _children_capacity = 1;
19784 ssize_t _n = 0;
19785 { // ',' star_named_expression
19786 if (p->error_indicator) {
19787 D(p->level--);
19788 return NULL;
19789 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019790 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 +010019791 Token * _literal;
19792 expr_ty elem;
19793 while (
19794 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19795 &&
19796 (elem = star_named_expression_rule(p)) // star_named_expression
19797 )
19798 {
19799 _res = elem;
19800 if (_res == NULL && PyErr_Occurred()) {
19801 p->error_indicator = 1;
19802 PyMem_Free(_children);
19803 D(p->level--);
19804 return NULL;
19805 }
19806 if (_n == _children_capacity) {
19807 _children_capacity *= 2;
19808 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19809 if (!_new_children) {
19810 p->error_indicator = 1;
19811 PyErr_NoMemory();
19812 D(p->level--);
19813 return NULL;
19814 }
19815 _children = _new_children;
19816 }
19817 _children[_n++] = _res;
19818 _mark = p->mark;
19819 }
19820 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019821 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
19823 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019824 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019825 if (!_seq) {
19826 PyMem_Free(_children);
19827 p->error_indicator = 1;
19828 PyErr_NoMemory();
19829 D(p->level--);
19830 return NULL;
19831 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019832 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019833 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019834 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019835 D(p->level--);
19836 return _seq;
19837}
19838
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019839// _gather_71: star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019840static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019841_gather_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019842{
19843 D(p->level++);
19844 if (p->error_indicator) {
19845 D(p->level--);
19846 return NULL;
19847 }
19848 asdl_seq * _res = NULL;
19849 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019850 { // star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019851 if (p->error_indicator) {
19852 D(p->level--);
19853 return NULL;
19854 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019855 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 +010019856 expr_ty elem;
19857 asdl_seq * seq;
19858 if (
19859 (elem = star_named_expression_rule(p)) // star_named_expression
19860 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019861 (seq = _loop0_72_rule(p)) // _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019862 )
19863 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019864 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 +010019865 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19866 goto done;
19867 }
19868 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019869 D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
19870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019871 }
19872 _res = NULL;
19873 done:
19874 D(p->level--);
19875 return _res;
19876}
19877
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019878// _loop1_73: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019879static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019880_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019881{
19882 D(p->level++);
19883 if (p->error_indicator) {
19884 D(p->level--);
19885 return NULL;
19886 }
19887 void *_res = NULL;
19888 int _mark = p->mark;
19889 int _start_mark = p->mark;
19890 void **_children = PyMem_Malloc(sizeof(void *));
19891 if (!_children) {
19892 p->error_indicator = 1;
19893 PyErr_NoMemory();
19894 D(p->level--);
19895 return NULL;
19896 }
19897 ssize_t _children_capacity = 1;
19898 ssize_t _n = 0;
19899 { // (',' expression)
19900 if (p->error_indicator) {
19901 D(p->level--);
19902 return NULL;
19903 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019904 D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
19905 void *_tmp_142_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019906 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019907 (_tmp_142_var = _tmp_142_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019908 )
19909 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019910 _res = _tmp_142_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019911 if (_n == _children_capacity) {
19912 _children_capacity *= 2;
19913 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19914 if (!_new_children) {
19915 p->error_indicator = 1;
19916 PyErr_NoMemory();
19917 D(p->level--);
19918 return NULL;
19919 }
19920 _children = _new_children;
19921 }
19922 _children[_n++] = _res;
19923 _mark = p->mark;
19924 }
19925 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019926 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
19928 }
19929 if (_n == 0 || p->error_indicator) {
19930 PyMem_Free(_children);
19931 D(p->level--);
19932 return NULL;
19933 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019934 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019935 if (!_seq) {
19936 PyMem_Free(_children);
19937 p->error_indicator = 1;
19938 PyErr_NoMemory();
19939 D(p->level--);
19940 return NULL;
19941 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019942 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019943 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019944 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019945 D(p->level--);
19946 return _seq;
19947}
19948
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019949// _loop0_74: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019950static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019951_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019952{
19953 D(p->level++);
19954 if (p->error_indicator) {
19955 D(p->level--);
19956 return NULL;
19957 }
19958 void *_res = NULL;
19959 int _mark = p->mark;
19960 int _start_mark = p->mark;
19961 void **_children = PyMem_Malloc(sizeof(void *));
19962 if (!_children) {
19963 p->error_indicator = 1;
19964 PyErr_NoMemory();
19965 D(p->level--);
19966 return NULL;
19967 }
19968 ssize_t _children_capacity = 1;
19969 ssize_t _n = 0;
19970 { // lambda_param_no_default
19971 if (p->error_indicator) {
19972 D(p->level--);
19973 return NULL;
19974 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019975 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 +010019976 arg_ty lambda_param_no_default_var;
19977 while (
19978 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
19979 )
19980 {
19981 _res = lambda_param_no_default_var;
19982 if (_n == _children_capacity) {
19983 _children_capacity *= 2;
19984 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19985 if (!_new_children) {
19986 p->error_indicator = 1;
19987 PyErr_NoMemory();
19988 D(p->level--);
19989 return NULL;
19990 }
19991 _children = _new_children;
19992 }
19993 _children[_n++] = _res;
19994 _mark = p->mark;
19995 }
19996 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019997 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019999 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020000 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020001 if (!_seq) {
20002 PyMem_Free(_children);
20003 p->error_indicator = 1;
20004 PyErr_NoMemory();
20005 D(p->level--);
20006 return NULL;
20007 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020008 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020009 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020010 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020011 D(p->level--);
20012 return _seq;
20013}
20014
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020015// _loop0_75: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020016static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020017_loop0_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020018{
20019 D(p->level++);
20020 if (p->error_indicator) {
20021 D(p->level--);
20022 return NULL;
20023 }
20024 void *_res = NULL;
20025 int _mark = p->mark;
20026 int _start_mark = p->mark;
20027 void **_children = PyMem_Malloc(sizeof(void *));
20028 if (!_children) {
20029 p->error_indicator = 1;
20030 PyErr_NoMemory();
20031 D(p->level--);
20032 return NULL;
20033 }
20034 ssize_t _children_capacity = 1;
20035 ssize_t _n = 0;
20036 { // lambda_param_with_default
20037 if (p->error_indicator) {
20038 D(p->level--);
20039 return NULL;
20040 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020041 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 +010020042 NameDefaultPair* lambda_param_with_default_var;
20043 while (
20044 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20045 )
20046 {
20047 _res = lambda_param_with_default_var;
20048 if (_n == _children_capacity) {
20049 _children_capacity *= 2;
20050 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20051 if (!_new_children) {
20052 p->error_indicator = 1;
20053 PyErr_NoMemory();
20054 D(p->level--);
20055 return NULL;
20056 }
20057 _children = _new_children;
20058 }
20059 _children[_n++] = _res;
20060 _mark = p->mark;
20061 }
20062 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020063 D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20065 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020066 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020067 if (!_seq) {
20068 PyMem_Free(_children);
20069 p->error_indicator = 1;
20070 PyErr_NoMemory();
20071 D(p->level--);
20072 return NULL;
20073 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020074 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020075 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020076 _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
20077 D(p->level--);
20078 return _seq;
20079}
20080
20081// _loop0_76: lambda_param_with_default
20082static asdl_seq *
20083_loop0_76_rule(Parser *p)
20084{
20085 D(p->level++);
20086 if (p->error_indicator) {
20087 D(p->level--);
20088 return NULL;
20089 }
20090 void *_res = NULL;
20091 int _mark = p->mark;
20092 int _start_mark = p->mark;
20093 void **_children = PyMem_Malloc(sizeof(void *));
20094 if (!_children) {
20095 p->error_indicator = 1;
20096 PyErr_NoMemory();
20097 D(p->level--);
20098 return NULL;
20099 }
20100 ssize_t _children_capacity = 1;
20101 ssize_t _n = 0;
20102 { // lambda_param_with_default
20103 if (p->error_indicator) {
20104 D(p->level--);
20105 return NULL;
20106 }
20107 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20108 NameDefaultPair* lambda_param_with_default_var;
20109 while (
20110 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20111 )
20112 {
20113 _res = lambda_param_with_default_var;
20114 if (_n == _children_capacity) {
20115 _children_capacity *= 2;
20116 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20117 if (!_new_children) {
20118 p->error_indicator = 1;
20119 PyErr_NoMemory();
20120 D(p->level--);
20121 return NULL;
20122 }
20123 _children = _new_children;
20124 }
20125 _children[_n++] = _res;
20126 _mark = p->mark;
20127 }
20128 p->mark = _mark;
20129 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
20130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20131 }
20132 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20133 if (!_seq) {
20134 PyMem_Free(_children);
20135 p->error_indicator = 1;
20136 PyErr_NoMemory();
20137 D(p->level--);
20138 return NULL;
20139 }
20140 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20141 PyMem_Free(_children);
20142 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
20143 D(p->level--);
20144 return _seq;
20145}
20146
20147// _loop1_77: lambda_param_no_default
20148static asdl_seq *
20149_loop1_77_rule(Parser *p)
20150{
20151 D(p->level++);
20152 if (p->error_indicator) {
20153 D(p->level--);
20154 return NULL;
20155 }
20156 void *_res = NULL;
20157 int _mark = p->mark;
20158 int _start_mark = p->mark;
20159 void **_children = PyMem_Malloc(sizeof(void *));
20160 if (!_children) {
20161 p->error_indicator = 1;
20162 PyErr_NoMemory();
20163 D(p->level--);
20164 return NULL;
20165 }
20166 ssize_t _children_capacity = 1;
20167 ssize_t _n = 0;
20168 { // lambda_param_no_default
20169 if (p->error_indicator) {
20170 D(p->level--);
20171 return NULL;
20172 }
20173 D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20174 arg_ty lambda_param_no_default_var;
20175 while (
20176 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20177 )
20178 {
20179 _res = lambda_param_no_default_var;
20180 if (_n == _children_capacity) {
20181 _children_capacity *= 2;
20182 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20183 if (!_new_children) {
20184 p->error_indicator = 1;
20185 PyErr_NoMemory();
20186 D(p->level--);
20187 return NULL;
20188 }
20189 _children = _new_children;
20190 }
20191 _children[_n++] = _res;
20192 _mark = p->mark;
20193 }
20194 p->mark = _mark;
20195 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
20196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20197 }
20198 if (_n == 0 || p->error_indicator) {
20199 PyMem_Free(_children);
20200 D(p->level--);
20201 return NULL;
20202 }
20203 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20204 if (!_seq) {
20205 PyMem_Free(_children);
20206 p->error_indicator = 1;
20207 PyErr_NoMemory();
20208 D(p->level--);
20209 return NULL;
20210 }
20211 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20212 PyMem_Free(_children);
20213 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020214 D(p->level--);
20215 return _seq;
20216}
20217
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020218// _loop0_78: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020219static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020220_loop0_78_rule(Parser *p)
20221{
20222 D(p->level++);
20223 if (p->error_indicator) {
20224 D(p->level--);
20225 return NULL;
20226 }
20227 void *_res = NULL;
20228 int _mark = p->mark;
20229 int _start_mark = p->mark;
20230 void **_children = PyMem_Malloc(sizeof(void *));
20231 if (!_children) {
20232 p->error_indicator = 1;
20233 PyErr_NoMemory();
20234 D(p->level--);
20235 return NULL;
20236 }
20237 ssize_t _children_capacity = 1;
20238 ssize_t _n = 0;
20239 { // lambda_param_with_default
20240 if (p->error_indicator) {
20241 D(p->level--);
20242 return NULL;
20243 }
20244 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20245 NameDefaultPair* lambda_param_with_default_var;
20246 while (
20247 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20248 )
20249 {
20250 _res = lambda_param_with_default_var;
20251 if (_n == _children_capacity) {
20252 _children_capacity *= 2;
20253 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20254 if (!_new_children) {
20255 p->error_indicator = 1;
20256 PyErr_NoMemory();
20257 D(p->level--);
20258 return NULL;
20259 }
20260 _children = _new_children;
20261 }
20262 _children[_n++] = _res;
20263 _mark = p->mark;
20264 }
20265 p->mark = _mark;
20266 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20268 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020269 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020270 if (!_seq) {
20271 PyMem_Free(_children);
20272 p->error_indicator = 1;
20273 PyErr_NoMemory();
20274 D(p->level--);
20275 return NULL;
20276 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020277 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020278 PyMem_Free(_children);
20279 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20280 D(p->level--);
20281 return _seq;
20282}
20283
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020284// _loop1_79: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020285static asdl_seq *
20286_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020287{
20288 D(p->level++);
20289 if (p->error_indicator) {
20290 D(p->level--);
20291 return NULL;
20292 }
20293 void *_res = NULL;
20294 int _mark = p->mark;
20295 int _start_mark = p->mark;
20296 void **_children = PyMem_Malloc(sizeof(void *));
20297 if (!_children) {
20298 p->error_indicator = 1;
20299 PyErr_NoMemory();
20300 D(p->level--);
20301 return NULL;
20302 }
20303 ssize_t _children_capacity = 1;
20304 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020305 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020306 if (p->error_indicator) {
20307 D(p->level--);
20308 return NULL;
20309 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020310 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20311 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020312 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020313 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020314 )
20315 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020316 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020317 if (_n == _children_capacity) {
20318 _children_capacity *= 2;
20319 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20320 if (!_new_children) {
20321 p->error_indicator = 1;
20322 PyErr_NoMemory();
20323 D(p->level--);
20324 return NULL;
20325 }
20326 _children = _new_children;
20327 }
20328 _children[_n++] = _res;
20329 _mark = p->mark;
20330 }
20331 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020332 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020334 }
20335 if (_n == 0 || p->error_indicator) {
20336 PyMem_Free(_children);
20337 D(p->level--);
20338 return NULL;
20339 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020340 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020341 if (!_seq) {
20342 PyMem_Free(_children);
20343 p->error_indicator = 1;
20344 PyErr_NoMemory();
20345 D(p->level--);
20346 return NULL;
20347 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020348 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020349 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020350 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020351 D(p->level--);
20352 return _seq;
20353}
20354
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020355// _loop1_80: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020356static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020357_loop1_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020358{
20359 D(p->level++);
20360 if (p->error_indicator) {
20361 D(p->level--);
20362 return NULL;
20363 }
20364 void *_res = NULL;
20365 int _mark = p->mark;
20366 int _start_mark = p->mark;
20367 void **_children = PyMem_Malloc(sizeof(void *));
20368 if (!_children) {
20369 p->error_indicator = 1;
20370 PyErr_NoMemory();
20371 D(p->level--);
20372 return NULL;
20373 }
20374 ssize_t _children_capacity = 1;
20375 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020376 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020377 if (p->error_indicator) {
20378 D(p->level--);
20379 return NULL;
20380 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020381 D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20382 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020383 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020384 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020385 )
20386 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020387 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020388 if (_n == _children_capacity) {
20389 _children_capacity *= 2;
20390 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20391 if (!_new_children) {
20392 p->error_indicator = 1;
20393 PyErr_NoMemory();
20394 D(p->level--);
20395 return NULL;
20396 }
20397 _children = _new_children;
20398 }
20399 _children[_n++] = _res;
20400 _mark = p->mark;
20401 }
20402 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020403 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
20404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20405 }
20406 if (_n == 0 || p->error_indicator) {
20407 PyMem_Free(_children);
20408 D(p->level--);
20409 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020410 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020411 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020412 if (!_seq) {
20413 PyMem_Free(_children);
20414 p->error_indicator = 1;
20415 PyErr_NoMemory();
20416 D(p->level--);
20417 return NULL;
20418 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020419 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020420 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020421 _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020422 D(p->level--);
20423 return _seq;
20424}
20425
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020426// _loop1_81: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020427static asdl_seq *
20428_loop1_81_rule(Parser *p)
20429{
20430 D(p->level++);
20431 if (p->error_indicator) {
20432 D(p->level--);
20433 return NULL;
20434 }
20435 void *_res = NULL;
20436 int _mark = p->mark;
20437 int _start_mark = p->mark;
20438 void **_children = PyMem_Malloc(sizeof(void *));
20439 if (!_children) {
20440 p->error_indicator = 1;
20441 PyErr_NoMemory();
20442 D(p->level--);
20443 return NULL;
20444 }
20445 ssize_t _children_capacity = 1;
20446 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020447 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020448 if (p->error_indicator) {
20449 D(p->level--);
20450 return NULL;
20451 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020452 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20453 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020454 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020455 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020456 )
20457 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020458 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020459 if (_n == _children_capacity) {
20460 _children_capacity *= 2;
20461 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20462 if (!_new_children) {
20463 p->error_indicator = 1;
20464 PyErr_NoMemory();
20465 D(p->level--);
20466 return NULL;
20467 }
20468 _children = _new_children;
20469 }
20470 _children[_n++] = _res;
20471 _mark = p->mark;
20472 }
20473 p->mark = _mark;
20474 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020476 }
20477 if (_n == 0 || p->error_indicator) {
20478 PyMem_Free(_children);
20479 D(p->level--);
20480 return NULL;
20481 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020482 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020483 if (!_seq) {
20484 PyMem_Free(_children);
20485 p->error_indicator = 1;
20486 PyErr_NoMemory();
20487 D(p->level--);
20488 return NULL;
20489 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020490 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020491 PyMem_Free(_children);
20492 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
20493 D(p->level--);
20494 return _seq;
20495}
20496
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020497// _loop0_82: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020498static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020499_loop0_82_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020500{
20501 D(p->level++);
20502 if (p->error_indicator) {
20503 D(p->level--);
20504 return NULL;
20505 }
20506 void *_res = NULL;
20507 int _mark = p->mark;
20508 int _start_mark = p->mark;
20509 void **_children = PyMem_Malloc(sizeof(void *));
20510 if (!_children) {
20511 p->error_indicator = 1;
20512 PyErr_NoMemory();
20513 D(p->level--);
20514 return NULL;
20515 }
20516 ssize_t _children_capacity = 1;
20517 ssize_t _n = 0;
20518 { // lambda_param_no_default
20519 if (p->error_indicator) {
20520 D(p->level--);
20521 return NULL;
20522 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020523 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 +010020524 arg_ty lambda_param_no_default_var;
20525 while (
20526 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20527 )
20528 {
20529 _res = lambda_param_no_default_var;
20530 if (_n == _children_capacity) {
20531 _children_capacity *= 2;
20532 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20533 if (!_new_children) {
20534 p->error_indicator = 1;
20535 PyErr_NoMemory();
20536 D(p->level--);
20537 return NULL;
20538 }
20539 _children = _new_children;
20540 }
20541 _children[_n++] = _res;
20542 _mark = p->mark;
20543 }
20544 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020545 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20547 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020548 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020549 if (!_seq) {
20550 PyMem_Free(_children);
20551 p->error_indicator = 1;
20552 PyErr_NoMemory();
20553 D(p->level--);
20554 return NULL;
20555 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020556 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020557 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020558 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020559 D(p->level--);
20560 return _seq;
20561}
20562
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020563// _loop1_83: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020564static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020565_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020566{
20567 D(p->level++);
20568 if (p->error_indicator) {
20569 D(p->level--);
20570 return NULL;
20571 }
20572 void *_res = NULL;
20573 int _mark = p->mark;
20574 int _start_mark = p->mark;
20575 void **_children = PyMem_Malloc(sizeof(void *));
20576 if (!_children) {
20577 p->error_indicator = 1;
20578 PyErr_NoMemory();
20579 D(p->level--);
20580 return NULL;
20581 }
20582 ssize_t _children_capacity = 1;
20583 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020584 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020585 if (p->error_indicator) {
20586 D(p->level--);
20587 return NULL;
20588 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020589 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20590 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020591 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020592 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020593 )
20594 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020595 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020596 if (_n == _children_capacity) {
20597 _children_capacity *= 2;
20598 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20599 if (!_new_children) {
20600 p->error_indicator = 1;
20601 PyErr_NoMemory();
20602 D(p->level--);
20603 return NULL;
20604 }
20605 _children = _new_children;
20606 }
20607 _children[_n++] = _res;
20608 _mark = p->mark;
20609 }
20610 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020611 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020613 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020614 if (_n == 0 || p->error_indicator) {
20615 PyMem_Free(_children);
20616 D(p->level--);
20617 return NULL;
20618 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020619 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020620 if (!_seq) {
20621 PyMem_Free(_children);
20622 p->error_indicator = 1;
20623 PyErr_NoMemory();
20624 D(p->level--);
20625 return NULL;
20626 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020627 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020628 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020629 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020630 D(p->level--);
20631 return _seq;
20632}
20633
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020634// _loop0_84: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020635static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020636_loop0_84_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020637{
20638 D(p->level++);
20639 if (p->error_indicator) {
20640 D(p->level--);
20641 return NULL;
20642 }
20643 void *_res = NULL;
20644 int _mark = p->mark;
20645 int _start_mark = p->mark;
20646 void **_children = PyMem_Malloc(sizeof(void *));
20647 if (!_children) {
20648 p->error_indicator = 1;
20649 PyErr_NoMemory();
20650 D(p->level--);
20651 return NULL;
20652 }
20653 ssize_t _children_capacity = 1;
20654 ssize_t _n = 0;
20655 { // lambda_param_no_default
20656 if (p->error_indicator) {
20657 D(p->level--);
20658 return NULL;
20659 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020660 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 +010020661 arg_ty lambda_param_no_default_var;
20662 while (
20663 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20664 )
20665 {
20666 _res = lambda_param_no_default_var;
20667 if (_n == _children_capacity) {
20668 _children_capacity *= 2;
20669 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20670 if (!_new_children) {
20671 p->error_indicator = 1;
20672 PyErr_NoMemory();
20673 D(p->level--);
20674 return NULL;
20675 }
20676 _children = _new_children;
20677 }
20678 _children[_n++] = _res;
20679 _mark = p->mark;
20680 }
20681 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020682 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20684 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020685 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020686 if (!_seq) {
20687 PyMem_Free(_children);
20688 p->error_indicator = 1;
20689 PyErr_NoMemory();
20690 D(p->level--);
20691 return NULL;
20692 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020693 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020694 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020695 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020696 D(p->level--);
20697 return _seq;
20698}
20699
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020700// _loop1_85: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020701static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020702_loop1_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020703{
20704 D(p->level++);
20705 if (p->error_indicator) {
20706 D(p->level--);
20707 return NULL;
20708 }
20709 void *_res = NULL;
20710 int _mark = p->mark;
20711 int _start_mark = p->mark;
20712 void **_children = PyMem_Malloc(sizeof(void *));
20713 if (!_children) {
20714 p->error_indicator = 1;
20715 PyErr_NoMemory();
20716 D(p->level--);
20717 return NULL;
20718 }
20719 ssize_t _children_capacity = 1;
20720 ssize_t _n = 0;
20721 { // lambda_param_with_default
20722 if (p->error_indicator) {
20723 D(p->level--);
20724 return NULL;
20725 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020726 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 +010020727 NameDefaultPair* lambda_param_with_default_var;
20728 while (
20729 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20730 )
20731 {
20732 _res = lambda_param_with_default_var;
20733 if (_n == _children_capacity) {
20734 _children_capacity *= 2;
20735 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20736 if (!_new_children) {
20737 p->error_indicator = 1;
20738 PyErr_NoMemory();
20739 D(p->level--);
20740 return NULL;
20741 }
20742 _children = _new_children;
20743 }
20744 _children[_n++] = _res;
20745 _mark = p->mark;
20746 }
20747 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020748 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20750 }
20751 if (_n == 0 || p->error_indicator) {
20752 PyMem_Free(_children);
20753 D(p->level--);
20754 return NULL;
20755 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020756 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020757 if (!_seq) {
20758 PyMem_Free(_children);
20759 p->error_indicator = 1;
20760 PyErr_NoMemory();
20761 D(p->level--);
20762 return NULL;
20763 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020764 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020765 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020766 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020767 D(p->level--);
20768 return _seq;
20769}
20770
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020771// _loop0_86: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020772static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020773_loop0_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020774{
20775 D(p->level++);
20776 if (p->error_indicator) {
20777 D(p->level--);
20778 return NULL;
20779 }
20780 void *_res = NULL;
20781 int _mark = p->mark;
20782 int _start_mark = p->mark;
20783 void **_children = PyMem_Malloc(sizeof(void *));
20784 if (!_children) {
20785 p->error_indicator = 1;
20786 PyErr_NoMemory();
20787 D(p->level--);
20788 return NULL;
20789 }
20790 ssize_t _children_capacity = 1;
20791 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020792 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020793 if (p->error_indicator) {
20794 D(p->level--);
20795 return NULL;
20796 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020797 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20798 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020799 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020800 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020801 )
20802 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020803 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020804 if (_n == _children_capacity) {
20805 _children_capacity *= 2;
20806 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20807 if (!_new_children) {
20808 p->error_indicator = 1;
20809 PyErr_NoMemory();
20810 D(p->level--);
20811 return NULL;
20812 }
20813 _children = _new_children;
20814 }
20815 _children[_n++] = _res;
20816 _mark = p->mark;
20817 }
20818 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020819 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020821 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020822 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020823 if (!_seq) {
20824 PyMem_Free(_children);
20825 p->error_indicator = 1;
20826 PyErr_NoMemory();
20827 D(p->level--);
20828 return NULL;
20829 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020830 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020831 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020832 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020833 D(p->level--);
20834 return _seq;
20835}
20836
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020837// _loop1_87: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020838static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020839_loop1_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020840{
20841 D(p->level++);
20842 if (p->error_indicator) {
20843 D(p->level--);
20844 return NULL;
20845 }
20846 void *_res = NULL;
20847 int _mark = p->mark;
20848 int _start_mark = p->mark;
20849 void **_children = PyMem_Malloc(sizeof(void *));
20850 if (!_children) {
20851 p->error_indicator = 1;
20852 PyErr_NoMemory();
20853 D(p->level--);
20854 return NULL;
20855 }
20856 ssize_t _children_capacity = 1;
20857 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020858 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020859 if (p->error_indicator) {
20860 D(p->level--);
20861 return NULL;
20862 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020863 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20864 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020865 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020866 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020867 )
20868 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020869 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020870 if (_n == _children_capacity) {
20871 _children_capacity *= 2;
20872 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20873 if (!_new_children) {
20874 p->error_indicator = 1;
20875 PyErr_NoMemory();
20876 D(p->level--);
20877 return NULL;
20878 }
20879 _children = _new_children;
20880 }
20881 _children[_n++] = _res;
20882 _mark = p->mark;
20883 }
20884 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020885 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020887 }
20888 if (_n == 0 || p->error_indicator) {
20889 PyMem_Free(_children);
20890 D(p->level--);
20891 return NULL;
20892 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020893 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020894 if (!_seq) {
20895 PyMem_Free(_children);
20896 p->error_indicator = 1;
20897 PyErr_NoMemory();
20898 D(p->level--);
20899 return NULL;
20900 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020901 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020902 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020903 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020904 D(p->level--);
20905 return _seq;
20906}
20907
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020908// _loop1_88: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020909static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020910_loop1_88_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020911{
20912 D(p->level++);
20913 if (p->error_indicator) {
20914 D(p->level--);
20915 return NULL;
20916 }
20917 void *_res = NULL;
20918 int _mark = p->mark;
20919 int _start_mark = p->mark;
20920 void **_children = PyMem_Malloc(sizeof(void *));
20921 if (!_children) {
20922 p->error_indicator = 1;
20923 PyErr_NoMemory();
20924 D(p->level--);
20925 return NULL;
20926 }
20927 ssize_t _children_capacity = 1;
20928 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020929 { // ('or' conjunction)
20930 if (p->error_indicator) {
20931 D(p->level--);
20932 return NULL;
20933 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020934 D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
20935 void *_tmp_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020936 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020937 (_tmp_143_var = _tmp_143_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020938 )
20939 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020940 _res = _tmp_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020941 if (_n == _children_capacity) {
20942 _children_capacity *= 2;
20943 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20944 if (!_new_children) {
20945 p->error_indicator = 1;
20946 PyErr_NoMemory();
20947 D(p->level--);
20948 return NULL;
20949 }
20950 _children = _new_children;
20951 }
20952 _children[_n++] = _res;
20953 _mark = p->mark;
20954 }
20955 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020956 D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
20958 }
20959 if (_n == 0 || p->error_indicator) {
20960 PyMem_Free(_children);
20961 D(p->level--);
20962 return NULL;
20963 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020964 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020965 if (!_seq) {
20966 PyMem_Free(_children);
20967 p->error_indicator = 1;
20968 PyErr_NoMemory();
20969 D(p->level--);
20970 return NULL;
20971 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020972 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020973 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020974 _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020975 D(p->level--);
20976 return _seq;
20977}
20978
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020979// _loop1_89: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020980static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020981_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020982{
20983 D(p->level++);
20984 if (p->error_indicator) {
20985 D(p->level--);
20986 return NULL;
20987 }
20988 void *_res = NULL;
20989 int _mark = p->mark;
20990 int _start_mark = p->mark;
20991 void **_children = PyMem_Malloc(sizeof(void *));
20992 if (!_children) {
20993 p->error_indicator = 1;
20994 PyErr_NoMemory();
20995 D(p->level--);
20996 return NULL;
20997 }
20998 ssize_t _children_capacity = 1;
20999 ssize_t _n = 0;
21000 { // ('and' inversion)
21001 if (p->error_indicator) {
21002 D(p->level--);
21003 return NULL;
21004 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021005 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
21006 void *_tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021007 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021008 (_tmp_144_var = _tmp_144_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021009 )
21010 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021011 _res = _tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021012 if (_n == _children_capacity) {
21013 _children_capacity *= 2;
21014 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21015 if (!_new_children) {
21016 p->error_indicator = 1;
21017 PyErr_NoMemory();
21018 D(p->level--);
21019 return NULL;
21020 }
21021 _children = _new_children;
21022 }
21023 _children[_n++] = _res;
21024 _mark = p->mark;
21025 }
21026 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021027 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
21029 }
21030 if (_n == 0 || p->error_indicator) {
21031 PyMem_Free(_children);
21032 D(p->level--);
21033 return NULL;
21034 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021035 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021036 if (!_seq) {
21037 PyMem_Free(_children);
21038 p->error_indicator = 1;
21039 PyErr_NoMemory();
21040 D(p->level--);
21041 return NULL;
21042 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021043 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021044 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021045 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021046 D(p->level--);
21047 return _seq;
21048}
21049
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021050// _loop1_90: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021051static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021052_loop1_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021053{
21054 D(p->level++);
21055 if (p->error_indicator) {
21056 D(p->level--);
21057 return NULL;
21058 }
21059 void *_res = NULL;
21060 int _mark = p->mark;
21061 int _start_mark = p->mark;
21062 void **_children = PyMem_Malloc(sizeof(void *));
21063 if (!_children) {
21064 p->error_indicator = 1;
21065 PyErr_NoMemory();
21066 D(p->level--);
21067 return NULL;
21068 }
21069 ssize_t _children_capacity = 1;
21070 ssize_t _n = 0;
21071 { // compare_op_bitwise_or_pair
21072 if (p->error_indicator) {
21073 D(p->level--);
21074 return NULL;
21075 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021076 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 +010021077 CmpopExprPair* compare_op_bitwise_or_pair_var;
21078 while (
21079 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
21080 )
21081 {
21082 _res = compare_op_bitwise_or_pair_var;
21083 if (_n == _children_capacity) {
21084 _children_capacity *= 2;
21085 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21086 if (!_new_children) {
21087 p->error_indicator = 1;
21088 PyErr_NoMemory();
21089 D(p->level--);
21090 return NULL;
21091 }
21092 _children = _new_children;
21093 }
21094 _children[_n++] = _res;
21095 _mark = p->mark;
21096 }
21097 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021098 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
21100 }
21101 if (_n == 0 || p->error_indicator) {
21102 PyMem_Free(_children);
21103 D(p->level--);
21104 return NULL;
21105 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021106 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021107 if (!_seq) {
21108 PyMem_Free(_children);
21109 p->error_indicator = 1;
21110 PyErr_NoMemory();
21111 D(p->level--);
21112 return NULL;
21113 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021114 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021115 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021116 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021117 D(p->level--);
21118 return _seq;
21119}
21120
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021121// _tmp_91: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021122static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021123_tmp_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021124{
21125 D(p->level++);
21126 if (p->error_indicator) {
21127 D(p->level--);
21128 return NULL;
21129 }
21130 void * _res = NULL;
21131 int _mark = p->mark;
21132 { // '!='
21133 if (p->error_indicator) {
21134 D(p->level--);
21135 return NULL;
21136 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021137 D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021138 Token * tok;
21139 if (
21140 (tok = _PyPegen_expect_token(p, 28)) // token='!='
21141 )
21142 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021143 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000021144 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021145 if (_res == NULL && PyErr_Occurred()) {
21146 p->error_indicator = 1;
21147 D(p->level--);
21148 return NULL;
21149 }
21150 goto done;
21151 }
21152 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021153 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
21155 }
21156 _res = NULL;
21157 done:
21158 D(p->level--);
21159 return _res;
21160}
21161
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021162// _loop0_93: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021163static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021164_loop0_93_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021165{
21166 D(p->level++);
21167 if (p->error_indicator) {
21168 D(p->level--);
21169 return NULL;
21170 }
21171 void *_res = NULL;
21172 int _mark = p->mark;
21173 int _start_mark = p->mark;
21174 void **_children = PyMem_Malloc(sizeof(void *));
21175 if (!_children) {
21176 p->error_indicator = 1;
21177 PyErr_NoMemory();
21178 D(p->level--);
21179 return NULL;
21180 }
21181 ssize_t _children_capacity = 1;
21182 ssize_t _n = 0;
21183 { // ',' slice
21184 if (p->error_indicator) {
21185 D(p->level--);
21186 return NULL;
21187 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021188 D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021189 Token * _literal;
21190 expr_ty elem;
21191 while (
21192 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21193 &&
21194 (elem = slice_rule(p)) // slice
21195 )
21196 {
21197 _res = elem;
21198 if (_res == NULL && PyErr_Occurred()) {
21199 p->error_indicator = 1;
21200 PyMem_Free(_children);
21201 D(p->level--);
21202 return NULL;
21203 }
21204 if (_n == _children_capacity) {
21205 _children_capacity *= 2;
21206 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21207 if (!_new_children) {
21208 p->error_indicator = 1;
21209 PyErr_NoMemory();
21210 D(p->level--);
21211 return NULL;
21212 }
21213 _children = _new_children;
21214 }
21215 _children[_n++] = _res;
21216 _mark = p->mark;
21217 }
21218 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021219 D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
21221 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021222 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021223 if (!_seq) {
21224 PyMem_Free(_children);
21225 p->error_indicator = 1;
21226 PyErr_NoMemory();
21227 D(p->level--);
21228 return NULL;
21229 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021230 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021231 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021232 _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021233 D(p->level--);
21234 return _seq;
21235}
21236
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021237// _gather_92: slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021238static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021239_gather_92_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021240{
21241 D(p->level++);
21242 if (p->error_indicator) {
21243 D(p->level--);
21244 return NULL;
21245 }
21246 asdl_seq * _res = NULL;
21247 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021248 { // slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021249 if (p->error_indicator) {
21250 D(p->level--);
21251 return NULL;
21252 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021253 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 +010021254 expr_ty elem;
21255 asdl_seq * seq;
21256 if (
21257 (elem = slice_rule(p)) // slice
21258 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021259 (seq = _loop0_93_rule(p)) // _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021260 )
21261 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021262 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 +010021263 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21264 goto done;
21265 }
21266 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021267 D(fprintf(stderr, "%*c%s _gather_92[%d-%d]: %s failed!\n", p->level, ' ',
21268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_93"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021269 }
21270 _res = NULL;
21271 done:
21272 D(p->level--);
21273 return _res;
21274}
21275
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021276// _tmp_94: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021277static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021278_tmp_94_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021279{
21280 D(p->level++);
21281 if (p->error_indicator) {
21282 D(p->level--);
21283 return NULL;
21284 }
21285 void * _res = NULL;
21286 int _mark = p->mark;
21287 { // ':' expression?
21288 if (p->error_indicator) {
21289 D(p->level--);
21290 return NULL;
21291 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021292 D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021293 Token * _literal;
21294 void *d;
21295 if (
21296 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21297 &&
21298 (d = expression_rule(p), 1) // expression?
21299 )
21300 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021301 D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021302 _res = d;
21303 if (_res == NULL && PyErr_Occurred()) {
21304 p->error_indicator = 1;
21305 D(p->level--);
21306 return NULL;
21307 }
21308 goto done;
21309 }
21310 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021311 D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
21313 }
21314 _res = NULL;
21315 done:
21316 D(p->level--);
21317 return _res;
21318}
21319
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021320// _tmp_95: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021321static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021322_tmp_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021323{
21324 D(p->level++);
21325 if (p->error_indicator) {
21326 D(p->level--);
21327 return NULL;
21328 }
21329 void * _res = NULL;
21330 int _mark = p->mark;
21331 { // tuple
21332 if (p->error_indicator) {
21333 D(p->level--);
21334 return NULL;
21335 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021336 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021337 expr_ty tuple_var;
21338 if (
21339 (tuple_var = tuple_rule(p)) // tuple
21340 )
21341 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021342 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021343 _res = tuple_var;
21344 goto done;
21345 }
21346 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021347 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
21349 }
21350 { // group
21351 if (p->error_indicator) {
21352 D(p->level--);
21353 return NULL;
21354 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021355 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021356 expr_ty group_var;
21357 if (
21358 (group_var = group_rule(p)) // group
21359 )
21360 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021361 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021362 _res = group_var;
21363 goto done;
21364 }
21365 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021366 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
21368 }
21369 { // genexp
21370 if (p->error_indicator) {
21371 D(p->level--);
21372 return NULL;
21373 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021374 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021375 expr_ty genexp_var;
21376 if (
21377 (genexp_var = genexp_rule(p)) // genexp
21378 )
21379 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021380 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021381 _res = genexp_var;
21382 goto done;
21383 }
21384 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021385 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
21387 }
21388 _res = NULL;
21389 done:
21390 D(p->level--);
21391 return _res;
21392}
21393
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021394// _tmp_96: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021395static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021396_tmp_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021397{
21398 D(p->level++);
21399 if (p->error_indicator) {
21400 D(p->level--);
21401 return NULL;
21402 }
21403 void * _res = NULL;
21404 int _mark = p->mark;
21405 { // list
21406 if (p->error_indicator) {
21407 D(p->level--);
21408 return NULL;
21409 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021410 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021411 expr_ty list_var;
21412 if (
21413 (list_var = list_rule(p)) // list
21414 )
21415 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021416 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021417 _res = list_var;
21418 goto done;
21419 }
21420 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021421 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
21423 }
21424 { // listcomp
21425 if (p->error_indicator) {
21426 D(p->level--);
21427 return NULL;
21428 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021429 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021430 expr_ty listcomp_var;
21431 if (
21432 (listcomp_var = listcomp_rule(p)) // listcomp
21433 )
21434 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021435 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021436 _res = listcomp_var;
21437 goto done;
21438 }
21439 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021440 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
21442 }
21443 _res = NULL;
21444 done:
21445 D(p->level--);
21446 return _res;
21447}
21448
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021449// _tmp_97: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021450static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021451_tmp_97_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 { // dict
21461 if (p->error_indicator) {
21462 D(p->level--);
21463 return NULL;
21464 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021465 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021466 expr_ty dict_var;
21467 if (
21468 (dict_var = dict_rule(p)) // dict
21469 )
21470 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021471 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021472 _res = dict_var;
21473 goto done;
21474 }
21475 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021476 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
21478 }
21479 { // set
21480 if (p->error_indicator) {
21481 D(p->level--);
21482 return NULL;
21483 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021484 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021485 expr_ty set_var;
21486 if (
21487 (set_var = set_rule(p)) // set
21488 )
21489 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021490 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021491 _res = set_var;
21492 goto done;
21493 }
21494 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021495 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
21497 }
21498 { // dictcomp
21499 if (p->error_indicator) {
21500 D(p->level--);
21501 return NULL;
21502 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021503 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021504 expr_ty dictcomp_var;
21505 if (
21506 (dictcomp_var = dictcomp_rule(p)) // dictcomp
21507 )
21508 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021509 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021510 _res = dictcomp_var;
21511 goto done;
21512 }
21513 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021514 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
21516 }
21517 { // setcomp
21518 if (p->error_indicator) {
21519 D(p->level--);
21520 return NULL;
21521 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021522 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021523 expr_ty setcomp_var;
21524 if (
21525 (setcomp_var = setcomp_rule(p)) // setcomp
21526 )
21527 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021528 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021529 _res = setcomp_var;
21530 goto done;
21531 }
21532 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021533 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
21535 }
21536 _res = NULL;
21537 done:
21538 D(p->level--);
21539 return _res;
21540}
21541
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021542// _loop1_98: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021543static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021544_loop1_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021545{
21546 D(p->level++);
21547 if (p->error_indicator) {
21548 D(p->level--);
21549 return NULL;
21550 }
21551 void *_res = NULL;
21552 int _mark = p->mark;
21553 int _start_mark = p->mark;
21554 void **_children = PyMem_Malloc(sizeof(void *));
21555 if (!_children) {
21556 p->error_indicator = 1;
21557 PyErr_NoMemory();
21558 D(p->level--);
21559 return NULL;
21560 }
21561 ssize_t _children_capacity = 1;
21562 ssize_t _n = 0;
21563 { // STRING
21564 if (p->error_indicator) {
21565 D(p->level--);
21566 return NULL;
21567 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021568 D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021569 expr_ty string_var;
21570 while (
21571 (string_var = _PyPegen_string_token(p)) // STRING
21572 )
21573 {
21574 _res = string_var;
21575 if (_n == _children_capacity) {
21576 _children_capacity *= 2;
21577 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21578 if (!_new_children) {
21579 p->error_indicator = 1;
21580 PyErr_NoMemory();
21581 D(p->level--);
21582 return NULL;
21583 }
21584 _children = _new_children;
21585 }
21586 _children[_n++] = _res;
21587 _mark = p->mark;
21588 }
21589 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021590 D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
21592 }
21593 if (_n == 0 || p->error_indicator) {
21594 PyMem_Free(_children);
21595 D(p->level--);
21596 return NULL;
21597 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021598 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021599 if (!_seq) {
21600 PyMem_Free(_children);
21601 p->error_indicator = 1;
21602 PyErr_NoMemory();
21603 D(p->level--);
21604 return NULL;
21605 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021606 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021607 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021608 _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021609 D(p->level--);
21610 return _seq;
21611}
21612
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021613// _tmp_99: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021614static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021615_tmp_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021616{
21617 D(p->level++);
21618 if (p->error_indicator) {
21619 D(p->level--);
21620 return NULL;
21621 }
21622 void * _res = NULL;
21623 int _mark = p->mark;
21624 { // star_named_expression ',' star_named_expressions?
21625 if (p->error_indicator) {
21626 D(p->level--);
21627 return NULL;
21628 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021629 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 +010021630 Token * _literal;
21631 expr_ty y;
21632 void *z;
21633 if (
21634 (y = star_named_expression_rule(p)) // star_named_expression
21635 &&
21636 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21637 &&
21638 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
21639 )
21640 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021641 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 +010021642 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21643 if (_res == NULL && PyErr_Occurred()) {
21644 p->error_indicator = 1;
21645 D(p->level--);
21646 return NULL;
21647 }
21648 goto done;
21649 }
21650 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021651 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
21653 }
21654 _res = NULL;
21655 done:
21656 D(p->level--);
21657 return _res;
21658}
21659
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021660// _tmp_100: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021661static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021662_tmp_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021663{
21664 D(p->level++);
21665 if (p->error_indicator) {
21666 D(p->level--);
21667 return NULL;
21668 }
21669 void * _res = NULL;
21670 int _mark = p->mark;
21671 { // yield_expr
21672 if (p->error_indicator) {
21673 D(p->level--);
21674 return NULL;
21675 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021676 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021677 expr_ty yield_expr_var;
21678 if (
21679 (yield_expr_var = yield_expr_rule(p)) // yield_expr
21680 )
21681 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021682 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 +010021683 _res = yield_expr_var;
21684 goto done;
21685 }
21686 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021687 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
21689 }
21690 { // named_expression
21691 if (p->error_indicator) {
21692 D(p->level--);
21693 return NULL;
21694 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021695 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021696 expr_ty named_expression_var;
21697 if (
21698 (named_expression_var = named_expression_rule(p)) // named_expression
21699 )
21700 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021701 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 +010021702 _res = named_expression_var;
21703 goto done;
21704 }
21705 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021706 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
21708 }
21709 _res = NULL;
21710 done:
21711 D(p->level--);
21712 return _res;
21713}
21714
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021715// _loop0_102: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021716static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021717_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021718{
21719 D(p->level++);
21720 if (p->error_indicator) {
21721 D(p->level--);
21722 return NULL;
21723 }
21724 void *_res = NULL;
21725 int _mark = p->mark;
21726 int _start_mark = p->mark;
21727 void **_children = PyMem_Malloc(sizeof(void *));
21728 if (!_children) {
21729 p->error_indicator = 1;
21730 PyErr_NoMemory();
21731 D(p->level--);
21732 return NULL;
21733 }
21734 ssize_t _children_capacity = 1;
21735 ssize_t _n = 0;
21736 { // ',' double_starred_kvpair
21737 if (p->error_indicator) {
21738 D(p->level--);
21739 return NULL;
21740 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021741 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 +010021742 Token * _literal;
21743 KeyValuePair* elem;
21744 while (
21745 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21746 &&
21747 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
21748 )
21749 {
21750 _res = elem;
21751 if (_res == NULL && PyErr_Occurred()) {
21752 p->error_indicator = 1;
21753 PyMem_Free(_children);
21754 D(p->level--);
21755 return NULL;
21756 }
21757 if (_n == _children_capacity) {
21758 _children_capacity *= 2;
21759 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21760 if (!_new_children) {
21761 p->error_indicator = 1;
21762 PyErr_NoMemory();
21763 D(p->level--);
21764 return NULL;
21765 }
21766 _children = _new_children;
21767 }
21768 _children[_n++] = _res;
21769 _mark = p->mark;
21770 }
21771 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021772 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
21774 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021775 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021776 if (!_seq) {
21777 PyMem_Free(_children);
21778 p->error_indicator = 1;
21779 PyErr_NoMemory();
21780 D(p->level--);
21781 return NULL;
21782 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021783 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021784 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021785 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021786 D(p->level--);
21787 return _seq;
21788}
21789
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021790// _gather_101: double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021791static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021792_gather_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021793{
21794 D(p->level++);
21795 if (p->error_indicator) {
21796 D(p->level--);
21797 return NULL;
21798 }
21799 asdl_seq * _res = NULL;
21800 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021801 { // double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021802 if (p->error_indicator) {
21803 D(p->level--);
21804 return NULL;
21805 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021806 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 +010021807 KeyValuePair* elem;
21808 asdl_seq * seq;
21809 if (
21810 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
21811 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021812 (seq = _loop0_102_rule(p)) // _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021813 )
21814 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021815 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 +010021816 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21817 goto done;
21818 }
21819 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021820 D(fprintf(stderr, "%*c%s _gather_101[%d-%d]: %s failed!\n", p->level, ' ',
21821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021822 }
21823 _res = NULL;
21824 done:
21825 D(p->level--);
21826 return _res;
21827}
21828
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021829// _loop1_103: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021830static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021831_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021832{
21833 D(p->level++);
21834 if (p->error_indicator) {
21835 D(p->level--);
21836 return NULL;
21837 }
21838 void *_res = NULL;
21839 int _mark = p->mark;
21840 int _start_mark = p->mark;
21841 void **_children = PyMem_Malloc(sizeof(void *));
21842 if (!_children) {
21843 p->error_indicator = 1;
21844 PyErr_NoMemory();
21845 D(p->level--);
21846 return NULL;
21847 }
21848 ssize_t _children_capacity = 1;
21849 ssize_t _n = 0;
21850 { // for_if_clause
21851 if (p->error_indicator) {
21852 D(p->level--);
21853 return NULL;
21854 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021855 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 +010021856 comprehension_ty for_if_clause_var;
21857 while (
21858 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
21859 )
21860 {
21861 _res = for_if_clause_var;
21862 if (_n == _children_capacity) {
21863 _children_capacity *= 2;
21864 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21865 if (!_new_children) {
21866 p->error_indicator = 1;
21867 PyErr_NoMemory();
21868 D(p->level--);
21869 return NULL;
21870 }
21871 _children = _new_children;
21872 }
21873 _children[_n++] = _res;
21874 _mark = p->mark;
21875 }
21876 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021877 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
21879 }
21880 if (_n == 0 || p->error_indicator) {
21881 PyMem_Free(_children);
21882 D(p->level--);
21883 return NULL;
21884 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021885 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021886 if (!_seq) {
21887 PyMem_Free(_children);
21888 p->error_indicator = 1;
21889 PyErr_NoMemory();
21890 D(p->level--);
21891 return NULL;
21892 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021893 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021894 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021895 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021896 D(p->level--);
21897 return _seq;
21898}
21899
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021900// _loop0_104: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021901static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021902_loop0_104_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021903{
21904 D(p->level++);
21905 if (p->error_indicator) {
21906 D(p->level--);
21907 return NULL;
21908 }
21909 void *_res = NULL;
21910 int _mark = p->mark;
21911 int _start_mark = p->mark;
21912 void **_children = PyMem_Malloc(sizeof(void *));
21913 if (!_children) {
21914 p->error_indicator = 1;
21915 PyErr_NoMemory();
21916 D(p->level--);
21917 return NULL;
21918 }
21919 ssize_t _children_capacity = 1;
21920 ssize_t _n = 0;
21921 { // ('if' disjunction)
21922 if (p->error_indicator) {
21923 D(p->level--);
21924 return NULL;
21925 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021926 D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
21927 void *_tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021928 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021929 (_tmp_145_var = _tmp_145_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021930 )
21931 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021932 _res = _tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021933 if (_n == _children_capacity) {
21934 _children_capacity *= 2;
21935 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21936 if (!_new_children) {
21937 p->error_indicator = 1;
21938 PyErr_NoMemory();
21939 D(p->level--);
21940 return NULL;
21941 }
21942 _children = _new_children;
21943 }
21944 _children[_n++] = _res;
21945 _mark = p->mark;
21946 }
21947 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021948 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
21950 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021951 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021952 if (!_seq) {
21953 PyMem_Free(_children);
21954 p->error_indicator = 1;
21955 PyErr_NoMemory();
21956 D(p->level--);
21957 return NULL;
21958 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021959 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021960 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021961 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021962 D(p->level--);
21963 return _seq;
21964}
21965
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021966// _loop0_105: ('if' disjunction)
21967static asdl_seq *
21968_loop0_105_rule(Parser *p)
21969{
21970 D(p->level++);
21971 if (p->error_indicator) {
21972 D(p->level--);
21973 return NULL;
21974 }
21975 void *_res = NULL;
21976 int _mark = p->mark;
21977 int _start_mark = p->mark;
21978 void **_children = PyMem_Malloc(sizeof(void *));
21979 if (!_children) {
21980 p->error_indicator = 1;
21981 PyErr_NoMemory();
21982 D(p->level--);
21983 return NULL;
21984 }
21985 ssize_t _children_capacity = 1;
21986 ssize_t _n = 0;
21987 { // ('if' disjunction)
21988 if (p->error_indicator) {
21989 D(p->level--);
21990 return NULL;
21991 }
21992 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
21993 void *_tmp_146_var;
21994 while (
21995 (_tmp_146_var = _tmp_146_rule(p)) // 'if' disjunction
21996 )
21997 {
21998 _res = _tmp_146_var;
21999 if (_n == _children_capacity) {
22000 _children_capacity *= 2;
22001 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22002 if (!_new_children) {
22003 p->error_indicator = 1;
22004 PyErr_NoMemory();
22005 D(p->level--);
22006 return NULL;
22007 }
22008 _children = _new_children;
22009 }
22010 _children[_n++] = _res;
22011 _mark = p->mark;
22012 }
22013 p->mark = _mark;
22014 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
22015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22016 }
22017 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22018 if (!_seq) {
22019 PyMem_Free(_children);
22020 p->error_indicator = 1;
22021 PyErr_NoMemory();
22022 D(p->level--);
22023 return NULL;
22024 }
22025 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22026 PyMem_Free(_children);
22027 _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
22028 D(p->level--);
22029 return _seq;
22030}
22031
22032// _loop0_107: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022033static asdl_seq *
22034_loop0_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022035{
22036 D(p->level++);
22037 if (p->error_indicator) {
22038 D(p->level--);
22039 return NULL;
22040 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022041 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022042 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022043 int _start_mark = p->mark;
22044 void **_children = PyMem_Malloc(sizeof(void *));
22045 if (!_children) {
22046 p->error_indicator = 1;
22047 PyErr_NoMemory();
22048 D(p->level--);
22049 return NULL;
22050 }
22051 ssize_t _children_capacity = 1;
22052 ssize_t _n = 0;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022053 { // ',' (starred_expression | named_expression !'=')
22054 if (p->error_indicator) {
22055 D(p->level--);
22056 return NULL;
22057 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022058 D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022059 Token * _literal;
22060 void *elem;
22061 while (
22062 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22063 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022064 (elem = _tmp_147_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022065 )
22066 {
22067 _res = elem;
22068 if (_res == NULL && PyErr_Occurred()) {
22069 p->error_indicator = 1;
22070 PyMem_Free(_children);
22071 D(p->level--);
22072 return NULL;
22073 }
22074 if (_n == _children_capacity) {
22075 _children_capacity *= 2;
22076 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22077 if (!_new_children) {
22078 p->error_indicator = 1;
22079 PyErr_NoMemory();
22080 D(p->level--);
22081 return NULL;
22082 }
22083 _children = _new_children;
22084 }
22085 _children[_n++] = _res;
22086 _mark = p->mark;
22087 }
22088 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022089 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22091 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022092 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022093 if (!_seq) {
22094 PyMem_Free(_children);
22095 p->error_indicator = 1;
22096 PyErr_NoMemory();
22097 D(p->level--);
22098 return NULL;
22099 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022100 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022101 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022102 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022103 D(p->level--);
22104 return _seq;
22105}
22106
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022107// _gather_106: (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022108static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022109_gather_106_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022110{
22111 D(p->level++);
22112 if (p->error_indicator) {
22113 D(p->level--);
22114 return NULL;
22115 }
22116 asdl_seq * _res = NULL;
22117 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022118 { // (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022119 if (p->error_indicator) {
22120 D(p->level--);
22121 return NULL;
22122 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022123 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 +010022124 void *elem;
22125 asdl_seq * seq;
22126 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022127 (elem = _tmp_147_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022128 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022129 (seq = _loop0_107_rule(p)) // _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022130 )
22131 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022132 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 +010022133 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22134 goto done;
22135 }
22136 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022137 D(fprintf(stderr, "%*c%s _gather_106[%d-%d]: %s failed!\n", p->level, ' ',
22138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022139 }
22140 _res = NULL;
22141 done:
22142 D(p->level--);
22143 return _res;
22144}
22145
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022146// _tmp_108: ',' kwargs
Pablo Galindo4a97b152020-09-02 17:44:19 +010022147static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022148_tmp_108_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022149{
22150 D(p->level++);
22151 if (p->error_indicator) {
22152 D(p->level--);
22153 return NULL;
22154 }
22155 void * _res = NULL;
22156 int _mark = p->mark;
22157 { // ',' kwargs
22158 if (p->error_indicator) {
22159 D(p->level--);
22160 return NULL;
22161 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022162 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022163 Token * _literal;
22164 asdl_seq* k;
22165 if (
22166 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22167 &&
22168 (k = kwargs_rule(p)) // kwargs
22169 )
22170 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022171 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022172 _res = k;
22173 if (_res == NULL && PyErr_Occurred()) {
22174 p->error_indicator = 1;
22175 D(p->level--);
22176 return NULL;
22177 }
22178 goto done;
22179 }
22180 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022181 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22183 }
22184 _res = NULL;
22185 done:
22186 D(p->level--);
22187 return _res;
22188}
22189
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022190// _loop0_110: ',' kwarg_or_starred
Pablo Galindo4a97b152020-09-02 17:44:19 +010022191static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022192_loop0_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022193{
22194 D(p->level++);
22195 if (p->error_indicator) {
22196 D(p->level--);
22197 return NULL;
22198 }
22199 void *_res = NULL;
22200 int _mark = p->mark;
22201 int _start_mark = p->mark;
22202 void **_children = PyMem_Malloc(sizeof(void *));
22203 if (!_children) {
22204 p->error_indicator = 1;
22205 PyErr_NoMemory();
22206 D(p->level--);
22207 return NULL;
22208 }
22209 ssize_t _children_capacity = 1;
22210 ssize_t _n = 0;
22211 { // ',' kwarg_or_starred
22212 if (p->error_indicator) {
22213 D(p->level--);
22214 return NULL;
22215 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022216 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 +010022217 Token * _literal;
22218 KeywordOrStarred* elem;
22219 while (
22220 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22221 &&
22222 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22223 )
22224 {
22225 _res = elem;
22226 if (_res == NULL && PyErr_Occurred()) {
22227 p->error_indicator = 1;
22228 PyMem_Free(_children);
22229 D(p->level--);
22230 return NULL;
22231 }
22232 if (_n == _children_capacity) {
22233 _children_capacity *= 2;
22234 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22235 if (!_new_children) {
22236 p->error_indicator = 1;
22237 PyErr_NoMemory();
22238 D(p->level--);
22239 return NULL;
22240 }
22241 _children = _new_children;
22242 }
22243 _children[_n++] = _res;
22244 _mark = p->mark;
22245 }
22246 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022247 D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
22248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
22249 }
22250 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22251 if (!_seq) {
22252 PyMem_Free(_children);
22253 p->error_indicator = 1;
22254 PyErr_NoMemory();
22255 D(p->level--);
22256 return NULL;
22257 }
22258 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22259 PyMem_Free(_children);
22260 _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
22261 D(p->level--);
22262 return _seq;
22263}
22264
22265// _gather_109: kwarg_or_starred _loop0_110
22266static asdl_seq *
22267_gather_109_rule(Parser *p)
22268{
22269 D(p->level++);
22270 if (p->error_indicator) {
22271 D(p->level--);
22272 return NULL;
22273 }
22274 asdl_seq * _res = NULL;
22275 int _mark = p->mark;
22276 { // kwarg_or_starred _loop0_110
22277 if (p->error_indicator) {
22278 D(p->level--);
22279 return NULL;
22280 }
22281 D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22282 KeywordOrStarred* elem;
22283 asdl_seq * seq;
22284 if (
22285 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22286 &&
22287 (seq = _loop0_110_rule(p)) // _loop0_110
22288 )
22289 {
22290 D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22291 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22292 goto done;
22293 }
22294 p->mark = _mark;
22295 D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
22296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
22297 }
22298 _res = NULL;
22299 done:
22300 D(p->level--);
22301 return _res;
22302}
22303
22304// _loop0_112: ',' kwarg_or_double_starred
22305static asdl_seq *
22306_loop0_112_rule(Parser *p)
22307{
22308 D(p->level++);
22309 if (p->error_indicator) {
22310 D(p->level--);
22311 return NULL;
22312 }
22313 void *_res = NULL;
22314 int _mark = p->mark;
22315 int _start_mark = p->mark;
22316 void **_children = PyMem_Malloc(sizeof(void *));
22317 if (!_children) {
22318 p->error_indicator = 1;
22319 PyErr_NoMemory();
22320 D(p->level--);
22321 return NULL;
22322 }
22323 ssize_t _children_capacity = 1;
22324 ssize_t _n = 0;
22325 { // ',' kwarg_or_double_starred
22326 if (p->error_indicator) {
22327 D(p->level--);
22328 return NULL;
22329 }
22330 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22331 Token * _literal;
22332 KeywordOrStarred* elem;
22333 while (
22334 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22335 &&
22336 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22337 )
22338 {
22339 _res = elem;
22340 if (_res == NULL && PyErr_Occurred()) {
22341 p->error_indicator = 1;
22342 PyMem_Free(_children);
22343 D(p->level--);
22344 return NULL;
22345 }
22346 if (_n == _children_capacity) {
22347 _children_capacity *= 2;
22348 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22349 if (!_new_children) {
22350 p->error_indicator = 1;
22351 PyErr_NoMemory();
22352 D(p->level--);
22353 return NULL;
22354 }
22355 _children = _new_children;
22356 }
22357 _children[_n++] = _res;
22358 _mark = p->mark;
22359 }
22360 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022361 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022363 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022364 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022365 if (!_seq) {
22366 PyMem_Free(_children);
22367 p->error_indicator = 1;
22368 PyErr_NoMemory();
22369 D(p->level--);
22370 return NULL;
22371 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022372 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022373 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022374 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022375 D(p->level--);
22376 return _seq;
22377}
22378
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022379// _gather_111: kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022380static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022381_gather_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022382{
22383 D(p->level++);
22384 if (p->error_indicator) {
22385 D(p->level--);
22386 return NULL;
22387 }
22388 asdl_seq * _res = NULL;
22389 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022390 { // kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022391 if (p->error_indicator) {
22392 D(p->level--);
22393 return NULL;
22394 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022395 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 +010022396 KeywordOrStarred* elem;
22397 asdl_seq * seq;
22398 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022399 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022400 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022401 (seq = _loop0_112_rule(p)) // _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022402 )
22403 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022404 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 +010022405 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22406 goto done;
22407 }
22408 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022409 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022411 }
22412 _res = NULL;
22413 done:
22414 D(p->level--);
22415 return _res;
22416}
22417
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022418// _loop0_114: ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022419static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022420_loop0_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022421{
22422 D(p->level++);
22423 if (p->error_indicator) {
22424 D(p->level--);
22425 return NULL;
22426 }
22427 void *_res = NULL;
22428 int _mark = p->mark;
22429 int _start_mark = p->mark;
22430 void **_children = PyMem_Malloc(sizeof(void *));
22431 if (!_children) {
22432 p->error_indicator = 1;
22433 PyErr_NoMemory();
22434 D(p->level--);
22435 return NULL;
22436 }
22437 ssize_t _children_capacity = 1;
22438 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022439 { // ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022440 if (p->error_indicator) {
22441 D(p->level--);
22442 return NULL;
22443 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022444 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 +010022445 Token * _literal;
22446 KeywordOrStarred* elem;
22447 while (
22448 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22449 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022450 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022451 )
22452 {
22453 _res = elem;
22454 if (_res == NULL && PyErr_Occurred()) {
22455 p->error_indicator = 1;
22456 PyMem_Free(_children);
22457 D(p->level--);
22458 return NULL;
22459 }
22460 if (_n == _children_capacity) {
22461 _children_capacity *= 2;
22462 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22463 if (!_new_children) {
22464 p->error_indicator = 1;
22465 PyErr_NoMemory();
22466 D(p->level--);
22467 return NULL;
22468 }
22469 _children = _new_children;
22470 }
22471 _children[_n++] = _res;
22472 _mark = p->mark;
22473 }
22474 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022475 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022477 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022478 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022479 if (!_seq) {
22480 PyMem_Free(_children);
22481 p->error_indicator = 1;
22482 PyErr_NoMemory();
22483 D(p->level--);
22484 return NULL;
22485 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022486 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022487 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022488 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022489 D(p->level--);
22490 return _seq;
22491}
22492
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022493// _gather_113: kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022494static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022495_gather_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022496{
22497 D(p->level++);
22498 if (p->error_indicator) {
22499 D(p->level--);
22500 return NULL;
22501 }
22502 asdl_seq * _res = NULL;
22503 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022504 { // kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022505 if (p->error_indicator) {
22506 D(p->level--);
22507 return NULL;
22508 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022509 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 +010022510 KeywordOrStarred* elem;
22511 asdl_seq * seq;
22512 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022513 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022514 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022515 (seq = _loop0_114_rule(p)) // _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022516 )
22517 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022518 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 +010022519 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22520 goto done;
22521 }
22522 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022523 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022525 }
22526 _res = NULL;
22527 done:
22528 D(p->level--);
22529 return _res;
22530}
22531
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022532// _loop0_116: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022533static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022534_loop0_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022535{
22536 D(p->level++);
22537 if (p->error_indicator) {
22538 D(p->level--);
22539 return NULL;
22540 }
22541 void *_res = NULL;
22542 int _mark = p->mark;
22543 int _start_mark = p->mark;
22544 void **_children = PyMem_Malloc(sizeof(void *));
22545 if (!_children) {
22546 p->error_indicator = 1;
22547 PyErr_NoMemory();
22548 D(p->level--);
22549 return NULL;
22550 }
22551 ssize_t _children_capacity = 1;
22552 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022553 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022554 if (p->error_indicator) {
22555 D(p->level--);
22556 return NULL;
22557 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022558 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 +010022559 Token * _literal;
22560 KeywordOrStarred* elem;
22561 while (
22562 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22563 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022564 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022565 )
22566 {
22567 _res = elem;
22568 if (_res == NULL && PyErr_Occurred()) {
22569 p->error_indicator = 1;
22570 PyMem_Free(_children);
22571 D(p->level--);
22572 return NULL;
22573 }
22574 if (_n == _children_capacity) {
22575 _children_capacity *= 2;
22576 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22577 if (!_new_children) {
22578 p->error_indicator = 1;
22579 PyErr_NoMemory();
22580 D(p->level--);
22581 return NULL;
22582 }
22583 _children = _new_children;
22584 }
22585 _children[_n++] = _res;
22586 _mark = p->mark;
22587 }
22588 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022589 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022591 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022592 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022593 if (!_seq) {
22594 PyMem_Free(_children);
22595 p->error_indicator = 1;
22596 PyErr_NoMemory();
22597 D(p->level--);
22598 return NULL;
22599 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022600 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022601 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022602 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022603 D(p->level--);
22604 return _seq;
22605}
22606
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022607// _gather_115: kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022608static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022609_gather_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022610{
22611 D(p->level++);
22612 if (p->error_indicator) {
22613 D(p->level--);
22614 return NULL;
22615 }
22616 asdl_seq * _res = NULL;
22617 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022618 { // kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022619 if (p->error_indicator) {
22620 D(p->level--);
22621 return NULL;
22622 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022623 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 +010022624 KeywordOrStarred* elem;
22625 asdl_seq * seq;
22626 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022627 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022628 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022629 (seq = _loop0_116_rule(p)) // _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022630 )
22631 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022632 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 +010022633 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22634 goto done;
22635 }
22636 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022637 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022639 }
22640 _res = NULL;
22641 done:
22642 D(p->level--);
22643 return _res;
22644}
22645
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022646// _loop0_117: (',' star_target)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022647static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022648_loop0_117_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022649{
22650 D(p->level++);
22651 if (p->error_indicator) {
22652 D(p->level--);
22653 return NULL;
22654 }
22655 void *_res = NULL;
22656 int _mark = p->mark;
22657 int _start_mark = p->mark;
22658 void **_children = PyMem_Malloc(sizeof(void *));
22659 if (!_children) {
22660 p->error_indicator = 1;
22661 PyErr_NoMemory();
22662 D(p->level--);
22663 return NULL;
22664 }
22665 ssize_t _children_capacity = 1;
22666 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022667 { // (',' star_target)
22668 if (p->error_indicator) {
22669 D(p->level--);
22670 return NULL;
22671 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022672 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
22673 void *_tmp_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022674 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022675 (_tmp_148_var = _tmp_148_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022676 )
22677 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022678 _res = _tmp_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022679 if (_n == _children_capacity) {
22680 _children_capacity *= 2;
22681 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22682 if (!_new_children) {
22683 p->error_indicator = 1;
22684 PyErr_NoMemory();
22685 D(p->level--);
22686 return NULL;
22687 }
22688 _children = _new_children;
22689 }
22690 _children[_n++] = _res;
22691 _mark = p->mark;
22692 }
22693 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022694 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
22696 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022697 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022698 if (!_seq) {
22699 PyMem_Free(_children);
22700 p->error_indicator = 1;
22701 PyErr_NoMemory();
22702 D(p->level--);
22703 return NULL;
22704 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022705 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022706 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022707 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022708 D(p->level--);
22709 return _seq;
22710}
22711
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022712// _loop0_119: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022713static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022714_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022715{
22716 D(p->level++);
22717 if (p->error_indicator) {
22718 D(p->level--);
22719 return NULL;
22720 }
22721 void *_res = NULL;
22722 int _mark = p->mark;
22723 int _start_mark = p->mark;
22724 void **_children = PyMem_Malloc(sizeof(void *));
22725 if (!_children) {
22726 p->error_indicator = 1;
22727 PyErr_NoMemory();
22728 D(p->level--);
22729 return NULL;
22730 }
22731 ssize_t _children_capacity = 1;
22732 ssize_t _n = 0;
22733 { // ',' star_target
22734 if (p->error_indicator) {
22735 D(p->level--);
22736 return NULL;
22737 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022738 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022739 Token * _literal;
22740 expr_ty elem;
22741 while (
22742 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22743 &&
22744 (elem = star_target_rule(p)) // star_target
22745 )
22746 {
22747 _res = elem;
22748 if (_res == NULL && PyErr_Occurred()) {
22749 p->error_indicator = 1;
22750 PyMem_Free(_children);
22751 D(p->level--);
22752 return NULL;
22753 }
22754 if (_n == _children_capacity) {
22755 _children_capacity *= 2;
22756 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22757 if (!_new_children) {
22758 p->error_indicator = 1;
22759 PyErr_NoMemory();
22760 D(p->level--);
22761 return NULL;
22762 }
22763 _children = _new_children;
22764 }
22765 _children[_n++] = _res;
22766 _mark = p->mark;
22767 }
22768 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022769 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
22771 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022772 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022773 if (!_seq) {
22774 PyMem_Free(_children);
22775 p->error_indicator = 1;
22776 PyErr_NoMemory();
22777 D(p->level--);
22778 return NULL;
22779 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022780 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022781 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022782 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022783 D(p->level--);
22784 return _seq;
22785}
22786
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022787// _gather_118: star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022788static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022789_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022790{
22791 D(p->level++);
22792 if (p->error_indicator) {
22793 D(p->level--);
22794 return NULL;
22795 }
22796 asdl_seq * _res = NULL;
22797 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022798 { // star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022799 if (p->error_indicator) {
22800 D(p->level--);
22801 return NULL;
22802 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022803 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 +010022804 expr_ty elem;
22805 asdl_seq * seq;
22806 if (
22807 (elem = star_target_rule(p)) // star_target
22808 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022809 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022810 )
22811 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022812 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 +010022813 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22814 goto done;
22815 }
22816 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022817 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
22818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022819 }
22820 _res = NULL;
22821 done:
22822 D(p->level--);
22823 return _res;
22824}
22825
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022826// _tmp_120: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022827static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022828_tmp_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022829{
22830 D(p->level++);
22831 if (p->error_indicator) {
22832 D(p->level--);
22833 return NULL;
22834 }
22835 void * _res = NULL;
22836 int _mark = p->mark;
22837 { // !'*' star_target
22838 if (p->error_indicator) {
22839 D(p->level--);
22840 return NULL;
22841 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022842 D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022843 expr_ty star_target_var;
22844 if (
22845 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
22846 &&
22847 (star_target_var = star_target_rule(p)) // star_target
22848 )
22849 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022850 D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022851 _res = star_target_var;
22852 goto done;
22853 }
22854 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022855 D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
22857 }
22858 _res = NULL;
22859 done:
22860 D(p->level--);
22861 return _res;
22862}
22863
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022864// _loop0_122: ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022865static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022866_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022867{
22868 D(p->level++);
22869 if (p->error_indicator) {
22870 D(p->level--);
22871 return NULL;
22872 }
22873 void *_res = NULL;
22874 int _mark = p->mark;
22875 int _start_mark = p->mark;
22876 void **_children = PyMem_Malloc(sizeof(void *));
22877 if (!_children) {
22878 p->error_indicator = 1;
22879 PyErr_NoMemory();
22880 D(p->level--);
22881 return NULL;
22882 }
22883 ssize_t _children_capacity = 1;
22884 ssize_t _n = 0;
22885 { // ',' del_target
22886 if (p->error_indicator) {
22887 D(p->level--);
22888 return NULL;
22889 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022890 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022891 Token * _literal;
22892 expr_ty elem;
22893 while (
22894 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22895 &&
22896 (elem = del_target_rule(p)) // del_target
22897 )
22898 {
22899 _res = elem;
22900 if (_res == NULL && PyErr_Occurred()) {
22901 p->error_indicator = 1;
22902 PyMem_Free(_children);
22903 D(p->level--);
22904 return NULL;
22905 }
22906 if (_n == _children_capacity) {
22907 _children_capacity *= 2;
22908 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22909 if (!_new_children) {
22910 p->error_indicator = 1;
22911 PyErr_NoMemory();
22912 D(p->level--);
22913 return NULL;
22914 }
22915 _children = _new_children;
22916 }
22917 _children[_n++] = _res;
22918 _mark = p->mark;
22919 }
22920 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022921 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
22922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
22923 }
22924 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22925 if (!_seq) {
22926 PyMem_Free(_children);
22927 p->error_indicator = 1;
22928 PyErr_NoMemory();
22929 D(p->level--);
22930 return NULL;
22931 }
22932 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22933 PyMem_Free(_children);
22934 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
22935 D(p->level--);
22936 return _seq;
22937}
22938
22939// _gather_121: del_target _loop0_122
22940static asdl_seq *
22941_gather_121_rule(Parser *p)
22942{
22943 D(p->level++);
22944 if (p->error_indicator) {
22945 D(p->level--);
22946 return NULL;
22947 }
22948 asdl_seq * _res = NULL;
22949 int _mark = p->mark;
22950 { // del_target _loop0_122
22951 if (p->error_indicator) {
22952 D(p->level--);
22953 return NULL;
22954 }
22955 D(fprintf(stderr, "%*c> _gather_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_122"));
22956 expr_ty elem;
22957 asdl_seq * seq;
22958 if (
22959 (elem = del_target_rule(p)) // del_target
22960 &&
22961 (seq = _loop0_122_rule(p)) // _loop0_122
22962 )
22963 {
22964 D(fprintf(stderr, "%*c+ _gather_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_122"));
22965 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22966 goto done;
22967 }
22968 p->mark = _mark;
22969 D(fprintf(stderr, "%*c%s _gather_121[%d-%d]: %s failed!\n", p->level, ' ',
22970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_122"));
22971 }
22972 _res = NULL;
22973 done:
22974 D(p->level--);
22975 return _res;
22976}
22977
22978// _loop0_124: ',' target
22979static asdl_seq *
22980_loop0_124_rule(Parser *p)
22981{
22982 D(p->level++);
22983 if (p->error_indicator) {
22984 D(p->level--);
22985 return NULL;
22986 }
22987 void *_res = NULL;
22988 int _mark = p->mark;
22989 int _start_mark = p->mark;
22990 void **_children = PyMem_Malloc(sizeof(void *));
22991 if (!_children) {
22992 p->error_indicator = 1;
22993 PyErr_NoMemory();
22994 D(p->level--);
22995 return NULL;
22996 }
22997 ssize_t _children_capacity = 1;
22998 ssize_t _n = 0;
22999 { // ',' target
23000 if (p->error_indicator) {
23001 D(p->level--);
23002 return NULL;
23003 }
23004 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
23005 Token * _literal;
23006 expr_ty elem;
23007 while (
23008 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23009 &&
23010 (elem = target_rule(p)) // target
23011 )
23012 {
23013 _res = elem;
23014 if (_res == NULL && PyErr_Occurred()) {
23015 p->error_indicator = 1;
23016 PyMem_Free(_children);
23017 D(p->level--);
23018 return NULL;
23019 }
23020 if (_n == _children_capacity) {
23021 _children_capacity *= 2;
23022 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23023 if (!_new_children) {
23024 p->error_indicator = 1;
23025 PyErr_NoMemory();
23026 D(p->level--);
23027 return NULL;
23028 }
23029 _children = _new_children;
23030 }
23031 _children[_n++] = _res;
23032 _mark = p->mark;
23033 }
23034 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010023035 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023037 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023038 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023039 if (!_seq) {
23040 PyMem_Free(_children);
23041 p->error_indicator = 1;
23042 PyErr_NoMemory();
23043 D(p->level--);
23044 return NULL;
23045 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023046 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023047 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010023048 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023049 D(p->level--);
23050 return _seq;
23051}
23052
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023053// _gather_123: target _loop0_124
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023054static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010023055_gather_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023056{
23057 D(p->level++);
23058 if (p->error_indicator) {
23059 D(p->level--);
23060 return NULL;
23061 }
23062 asdl_seq * _res = NULL;
23063 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023064 { // target _loop0_124
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023065 if (p->error_indicator) {
23066 D(p->level--);
23067 return NULL;
23068 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023069 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_124"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023070 expr_ty elem;
23071 asdl_seq * seq;
23072 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023073 (elem = target_rule(p)) // target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023074 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010023075 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023076 )
23077 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023078 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_124"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023079 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23080 goto done;
23081 }
23082 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010023083 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_124"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023085 }
23086 _res = NULL;
23087 done:
23088 D(p->level--);
23089 return _res;
23090}
23091
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023092// _tmp_125: args | expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023093static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023094_tmp_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023095{
23096 D(p->level++);
23097 if (p->error_indicator) {
23098 D(p->level--);
23099 return NULL;
23100 }
23101 void * _res = NULL;
23102 int _mark = p->mark;
23103 { // args
23104 if (p->error_indicator) {
23105 D(p->level--);
23106 return NULL;
23107 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023108 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023109 expr_ty args_var;
23110 if (
23111 (args_var = args_rule(p)) // args
23112 )
23113 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023114 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023115 _res = args_var;
23116 goto done;
23117 }
23118 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023119 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
23121 }
23122 { // expression for_if_clauses
23123 if (p->error_indicator) {
23124 D(p->level--);
23125 return NULL;
23126 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023127 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023128 expr_ty expression_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010023129 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023130 if (
23131 (expression_var = expression_rule(p)) // expression
23132 &&
23133 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
23134 )
23135 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023136 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023137 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
23138 goto done;
23139 }
23140 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023141 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
23143 }
23144 _res = NULL;
23145 done:
23146 D(p->level--);
23147 return _res;
23148}
23149
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023150// _loop0_126: star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023151static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023152_loop0_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023153{
23154 D(p->level++);
23155 if (p->error_indicator) {
23156 D(p->level--);
23157 return NULL;
23158 }
23159 void *_res = NULL;
23160 int _mark = p->mark;
23161 int _start_mark = p->mark;
23162 void **_children = PyMem_Malloc(sizeof(void *));
23163 if (!_children) {
23164 p->error_indicator = 1;
23165 PyErr_NoMemory();
23166 D(p->level--);
23167 return NULL;
23168 }
23169 ssize_t _children_capacity = 1;
23170 ssize_t _n = 0;
23171 { // star_named_expressions
23172 if (p->error_indicator) {
23173 D(p->level--);
23174 return NULL;
23175 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023176 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010023177 asdl_expr_seq* star_named_expressions_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023178 while (
23179 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23180 )
23181 {
23182 _res = star_named_expressions_var;
23183 if (_n == _children_capacity) {
23184 _children_capacity *= 2;
23185 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23186 if (!_new_children) {
23187 p->error_indicator = 1;
23188 PyErr_NoMemory();
23189 D(p->level--);
23190 return NULL;
23191 }
23192 _children = _new_children;
23193 }
23194 _children[_n++] = _res;
23195 _mark = p->mark;
23196 }
23197 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023198 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010023199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023200 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023201 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023202 if (!_seq) {
23203 PyMem_Free(_children);
23204 p->error_indicator = 1;
23205 PyErr_NoMemory();
23206 D(p->level--);
23207 return NULL;
23208 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023209 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023210 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023211 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
23212 D(p->level--);
23213 return _seq;
23214}
23215
23216// _loop0_127: (star_targets '=')
23217static asdl_seq *
23218_loop0_127_rule(Parser *p)
23219{
23220 D(p->level++);
23221 if (p->error_indicator) {
23222 D(p->level--);
23223 return NULL;
23224 }
23225 void *_res = NULL;
23226 int _mark = p->mark;
23227 int _start_mark = p->mark;
23228 void **_children = PyMem_Malloc(sizeof(void *));
23229 if (!_children) {
23230 p->error_indicator = 1;
23231 PyErr_NoMemory();
23232 D(p->level--);
23233 return NULL;
23234 }
23235 ssize_t _children_capacity = 1;
23236 ssize_t _n = 0;
23237 { // (star_targets '=')
23238 if (p->error_indicator) {
23239 D(p->level--);
23240 return NULL;
23241 }
23242 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23243 void *_tmp_149_var;
23244 while (
23245 (_tmp_149_var = _tmp_149_rule(p)) // star_targets '='
23246 )
23247 {
23248 _res = _tmp_149_var;
23249 if (_n == _children_capacity) {
23250 _children_capacity *= 2;
23251 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23252 if (!_new_children) {
23253 p->error_indicator = 1;
23254 PyErr_NoMemory();
23255 D(p->level--);
23256 return NULL;
23257 }
23258 _children = _new_children;
23259 }
23260 _children[_n++] = _res;
23261 _mark = p->mark;
23262 }
23263 p->mark = _mark;
23264 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
23265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23266 }
23267 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23268 if (!_seq) {
23269 PyMem_Free(_children);
23270 p->error_indicator = 1;
23271 PyErr_NoMemory();
23272 D(p->level--);
23273 return NULL;
23274 }
23275 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23276 PyMem_Free(_children);
23277 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
23278 D(p->level--);
23279 return _seq;
23280}
23281
23282// _loop0_128: (star_targets '=')
23283static asdl_seq *
23284_loop0_128_rule(Parser *p)
23285{
23286 D(p->level++);
23287 if (p->error_indicator) {
23288 D(p->level--);
23289 return NULL;
23290 }
23291 void *_res = NULL;
23292 int _mark = p->mark;
23293 int _start_mark = p->mark;
23294 void **_children = PyMem_Malloc(sizeof(void *));
23295 if (!_children) {
23296 p->error_indicator = 1;
23297 PyErr_NoMemory();
23298 D(p->level--);
23299 return NULL;
23300 }
23301 ssize_t _children_capacity = 1;
23302 ssize_t _n = 0;
23303 { // (star_targets '=')
23304 if (p->error_indicator) {
23305 D(p->level--);
23306 return NULL;
23307 }
23308 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23309 void *_tmp_150_var;
23310 while (
23311 (_tmp_150_var = _tmp_150_rule(p)) // star_targets '='
23312 )
23313 {
23314 _res = _tmp_150_var;
23315 if (_n == _children_capacity) {
23316 _children_capacity *= 2;
23317 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23318 if (!_new_children) {
23319 p->error_indicator = 1;
23320 PyErr_NoMemory();
23321 D(p->level--);
23322 return NULL;
23323 }
23324 _children = _new_children;
23325 }
23326 _children[_n++] = _res;
23327 _mark = p->mark;
23328 }
23329 p->mark = _mark;
23330 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
23331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23332 }
23333 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23334 if (!_seq) {
23335 PyMem_Free(_children);
23336 p->error_indicator = 1;
23337 PyErr_NoMemory();
23338 D(p->level--);
23339 return NULL;
23340 }
23341 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23342 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023343 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023344 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023345 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023346}
23347
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023348// _tmp_129: yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023349static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023350_tmp_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023351{
23352 D(p->level++);
23353 if (p->error_indicator) {
23354 D(p->level--);
23355 return NULL;
23356 }
23357 void * _res = NULL;
23358 int _mark = p->mark;
23359 { // yield_expr
23360 if (p->error_indicator) {
23361 D(p->level--);
23362 return NULL;
23363 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023364 D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023365 expr_ty yield_expr_var;
23366 if (
23367 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23368 )
23369 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023370 D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023371 _res = yield_expr_var;
23372 goto done;
23373 }
23374 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023375 D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23377 }
23378 { // star_expressions
23379 if (p->error_indicator) {
23380 D(p->level--);
23381 return NULL;
23382 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023383 D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023384 expr_ty star_expressions_var;
23385 if (
23386 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23387 )
23388 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023389 D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023390 _res = star_expressions_var;
23391 goto done;
23392 }
23393 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023394 D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23396 }
23397 _res = NULL;
23398 done:
23399 D(p->level--);
23400 return _res;
23401}
23402
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023403// _tmp_130: '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023404static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023405_tmp_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023406{
23407 D(p->level++);
23408 if (p->error_indicator) {
23409 D(p->level--);
23410 return NULL;
23411 }
23412 void * _res = NULL;
23413 int _mark = p->mark;
23414 { // '['
23415 if (p->error_indicator) {
23416 D(p->level--);
23417 return NULL;
23418 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023419 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023420 Token * _literal;
23421 if (
23422 (_literal = _PyPegen_expect_token(p, 9)) // token='['
23423 )
23424 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023425 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023426 _res = _literal;
23427 goto done;
23428 }
23429 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023430 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
23432 }
23433 { // '('
23434 if (p->error_indicator) {
23435 D(p->level--);
23436 return NULL;
23437 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023438 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023439 Token * _literal;
23440 if (
23441 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23442 )
23443 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023444 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023445 _res = _literal;
23446 goto done;
23447 }
23448 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023449 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
23451 }
23452 { // '{'
23453 if (p->error_indicator) {
23454 D(p->level--);
23455 return NULL;
23456 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023457 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023458 Token * _literal;
23459 if (
23460 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
23461 )
23462 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023463 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023464 _res = _literal;
23465 goto done;
23466 }
23467 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023468 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
23470 }
23471 _res = NULL;
23472 done:
23473 D(p->level--);
23474 return _res;
23475}
23476
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023477// _loop0_131: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023478static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023479_loop0_131_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023480{
23481 D(p->level++);
23482 if (p->error_indicator) {
23483 D(p->level--);
23484 return NULL;
23485 }
23486 void *_res = NULL;
23487 int _mark = p->mark;
23488 int _start_mark = p->mark;
23489 void **_children = PyMem_Malloc(sizeof(void *));
23490 if (!_children) {
23491 p->error_indicator = 1;
23492 PyErr_NoMemory();
23493 D(p->level--);
23494 return NULL;
23495 }
23496 ssize_t _children_capacity = 1;
23497 ssize_t _n = 0;
23498 { // param_no_default
23499 if (p->error_indicator) {
23500 D(p->level--);
23501 return NULL;
23502 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023503 D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023504 arg_ty param_no_default_var;
23505 while (
23506 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23507 )
23508 {
23509 _res = param_no_default_var;
23510 if (_n == _children_capacity) {
23511 _children_capacity *= 2;
23512 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23513 if (!_new_children) {
23514 p->error_indicator = 1;
23515 PyErr_NoMemory();
23516 D(p->level--);
23517 return NULL;
23518 }
23519 _children = _new_children;
23520 }
23521 _children[_n++] = _res;
23522 _mark = p->mark;
23523 }
23524 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023525 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23527 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023528 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023529 if (!_seq) {
23530 PyMem_Free(_children);
23531 p->error_indicator = 1;
23532 PyErr_NoMemory();
23533 D(p->level--);
23534 return NULL;
23535 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023536 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023537 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023538 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023539 D(p->level--);
23540 return _seq;
23541}
23542
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023543// _tmp_132: slash_with_default | param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023544static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023545_tmp_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023546{
23547 D(p->level++);
23548 if (p->error_indicator) {
23549 D(p->level--);
23550 return NULL;
23551 }
23552 void * _res = NULL;
23553 int _mark = p->mark;
23554 { // slash_with_default
23555 if (p->error_indicator) {
23556 D(p->level--);
23557 return NULL;
23558 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023559 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023560 SlashWithDefault* slash_with_default_var;
23561 if (
23562 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
23563 )
23564 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023565 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023566 _res = slash_with_default_var;
23567 goto done;
23568 }
23569 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023570 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
23572 }
23573 { // param_with_default+
23574 if (p->error_indicator) {
23575 D(p->level--);
23576 return NULL;
23577 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023578 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23579 asdl_seq * _loop1_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023580 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023581 (_loop1_151_var = _loop1_151_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023582 )
23583 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023584 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23585 _res = _loop1_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023586 goto done;
23587 }
23588 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023589 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
23591 }
23592 _res = NULL;
23593 done:
23594 D(p->level--);
23595 return _res;
23596}
23597
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023598// _loop0_133: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023599static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023600_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023601{
23602 D(p->level++);
23603 if (p->error_indicator) {
23604 D(p->level--);
23605 return NULL;
23606 }
23607 void *_res = NULL;
23608 int _mark = p->mark;
23609 int _start_mark = p->mark;
23610 void **_children = PyMem_Malloc(sizeof(void *));
23611 if (!_children) {
23612 p->error_indicator = 1;
23613 PyErr_NoMemory();
23614 D(p->level--);
23615 return NULL;
23616 }
23617 ssize_t _children_capacity = 1;
23618 ssize_t _n = 0;
23619 { // lambda_param_no_default
23620 if (p->error_indicator) {
23621 D(p->level--);
23622 return NULL;
23623 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023624 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023625 arg_ty lambda_param_no_default_var;
23626 while (
23627 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23628 )
23629 {
23630 _res = lambda_param_no_default_var;
23631 if (_n == _children_capacity) {
23632 _children_capacity *= 2;
23633 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23634 if (!_new_children) {
23635 p->error_indicator = 1;
23636 PyErr_NoMemory();
23637 D(p->level--);
23638 return NULL;
23639 }
23640 _children = _new_children;
23641 }
23642 _children[_n++] = _res;
23643 _mark = p->mark;
23644 }
23645 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023646 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
23648 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023649 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023650 if (!_seq) {
23651 PyMem_Free(_children);
23652 p->error_indicator = 1;
23653 PyErr_NoMemory();
23654 D(p->level--);
23655 return NULL;
23656 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023657 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023658 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023659 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023660 D(p->level--);
23661 return _seq;
23662}
23663
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023664// _tmp_134: lambda_slash_with_default | lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023665static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023666_tmp_134_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023667{
23668 D(p->level++);
23669 if (p->error_indicator) {
23670 D(p->level--);
23671 return NULL;
23672 }
23673 void * _res = NULL;
23674 int _mark = p->mark;
23675 { // lambda_slash_with_default
23676 if (p->error_indicator) {
23677 D(p->level--);
23678 return NULL;
23679 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023680 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023681 SlashWithDefault* lambda_slash_with_default_var;
23682 if (
23683 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
23684 )
23685 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023686 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023687 _res = lambda_slash_with_default_var;
23688 goto done;
23689 }
23690 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023691 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
23693 }
23694 { // lambda_param_with_default+
23695 if (p->error_indicator) {
23696 D(p->level--);
23697 return NULL;
23698 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023699 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23700 asdl_seq * _loop1_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023701 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023702 (_loop1_152_var = _loop1_152_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023703 )
23704 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023705 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23706 _res = _loop1_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023707 goto done;
23708 }
23709 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023710 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
23712 }
23713 _res = NULL;
23714 done:
23715 D(p->level--);
23716 return _res;
23717}
23718
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023719// _tmp_135: ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023720static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023721_tmp_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023722{
23723 D(p->level++);
23724 if (p->error_indicator) {
23725 D(p->level--);
23726 return NULL;
23727 }
23728 void * _res = NULL;
23729 int _mark = p->mark;
23730 { // ')'
23731 if (p->error_indicator) {
23732 D(p->level--);
23733 return NULL;
23734 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023735 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023736 Token * _literal;
23737 if (
23738 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23739 )
23740 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023741 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023742 _res = _literal;
23743 goto done;
23744 }
23745 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023746 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23748 }
23749 { // ',' (')' | '**')
23750 if (p->error_indicator) {
23751 D(p->level--);
23752 return NULL;
23753 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023754 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023755 Token * _literal;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023756 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023757 if (
23758 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23759 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023760 (_tmp_153_var = _tmp_153_rule(p)) // ')' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023761 )
23762 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023763 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
23764 _res = _PyPegen_dummy_name(p, _literal, _tmp_153_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023765 goto done;
23766 }
23767 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023768 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
23770 }
23771 _res = NULL;
23772 done:
23773 D(p->level--);
23774 return _res;
23775}
23776
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023777// _tmp_136: ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023778static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023779_tmp_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023780{
23781 D(p->level++);
23782 if (p->error_indicator) {
23783 D(p->level--);
23784 return NULL;
23785 }
23786 void * _res = NULL;
23787 int _mark = p->mark;
23788 { // ':'
23789 if (p->error_indicator) {
23790 D(p->level--);
23791 return NULL;
23792 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023793 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023794 Token * _literal;
23795 if (
23796 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23797 )
23798 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023799 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023800 _res = _literal;
23801 goto done;
23802 }
23803 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023804 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
23806 }
23807 { // ',' (':' | '**')
23808 if (p->error_indicator) {
23809 D(p->level--);
23810 return NULL;
23811 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023812 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023813 Token * _literal;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023814 void *_tmp_154_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023815 if (
23816 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23817 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023818 (_tmp_154_var = _tmp_154_rule(p)) // ':' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023819 )
23820 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023821 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
23822 _res = _PyPegen_dummy_name(p, _literal, _tmp_154_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023823 goto done;
23824 }
23825 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023826 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
23828 }
23829 _res = NULL;
23830 done:
23831 D(p->level--);
23832 return _res;
23833}
23834
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023835// _tmp_137: star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023836static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023837_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023838{
23839 D(p->level++);
23840 if (p->error_indicator) {
23841 D(p->level--);
23842 return NULL;
23843 }
23844 void * _res = NULL;
23845 int _mark = p->mark;
23846 { // star_targets '='
23847 if (p->error_indicator) {
23848 D(p->level--);
23849 return NULL;
23850 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023851 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023852 Token * _literal;
23853 expr_ty z;
23854 if (
23855 (z = star_targets_rule(p)) // star_targets
23856 &&
23857 (_literal = _PyPegen_expect_token(p, 22)) // token='='
23858 )
23859 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023860 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023861 _res = z;
23862 if (_res == NULL && PyErr_Occurred()) {
23863 p->error_indicator = 1;
23864 D(p->level--);
23865 return NULL;
23866 }
23867 goto done;
23868 }
23869 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023870 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
23872 }
23873 _res = NULL;
23874 done:
23875 D(p->level--);
23876 return _res;
23877}
23878
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023879// _tmp_138: '.' | '...'
23880static void *
23881_tmp_138_rule(Parser *p)
23882{
23883 D(p->level++);
23884 if (p->error_indicator) {
23885 D(p->level--);
23886 return NULL;
23887 }
23888 void * _res = NULL;
23889 int _mark = p->mark;
23890 { // '.'
23891 if (p->error_indicator) {
23892 D(p->level--);
23893 return NULL;
23894 }
23895 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23896 Token * _literal;
23897 if (
23898 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23899 )
23900 {
23901 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23902 _res = _literal;
23903 goto done;
23904 }
23905 p->mark = _mark;
23906 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
23907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23908 }
23909 { // '...'
23910 if (p->error_indicator) {
23911 D(p->level--);
23912 return NULL;
23913 }
23914 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
23915 Token * _literal;
23916 if (
23917 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
23918 )
23919 {
23920 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
23921 _res = _literal;
23922 goto done;
23923 }
23924 p->mark = _mark;
23925 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
23926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
23927 }
23928 _res = NULL;
23929 done:
23930 D(p->level--);
23931 return _res;
23932}
23933
23934// _tmp_139: '.' | '...'
23935static void *
23936_tmp_139_rule(Parser *p)
23937{
23938 D(p->level++);
23939 if (p->error_indicator) {
23940 D(p->level--);
23941 return NULL;
23942 }
23943 void * _res = NULL;
23944 int _mark = p->mark;
23945 { // '.'
23946 if (p->error_indicator) {
23947 D(p->level--);
23948 return NULL;
23949 }
23950 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23951 Token * _literal;
23952 if (
23953 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23954 )
23955 {
23956 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23957 _res = _literal;
23958 goto done;
23959 }
23960 p->mark = _mark;
23961 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
23962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23963 }
23964 { // '...'
23965 if (p->error_indicator) {
23966 D(p->level--);
23967 return NULL;
23968 }
23969 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
23970 Token * _literal;
23971 if (
23972 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
23973 )
23974 {
23975 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
23976 _res = _literal;
23977 goto done;
23978 }
23979 p->mark = _mark;
23980 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
23981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
23982 }
23983 _res = NULL;
23984 done:
23985 D(p->level--);
23986 return _res;
23987}
23988
23989// _tmp_140: '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023990static void *
23991_tmp_140_rule(Parser *p)
23992{
23993 D(p->level++);
23994 if (p->error_indicator) {
23995 D(p->level--);
23996 return NULL;
23997 }
23998 void * _res = NULL;
23999 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024000 { // '@' named_expression NEWLINE
24001 if (p->error_indicator) {
24002 D(p->level--);
24003 return NULL;
24004 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024005 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024006 Token * _literal;
24007 expr_ty f;
24008 Token * newline_var;
24009 if (
24010 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
24011 &&
24012 (f = named_expression_rule(p)) // named_expression
24013 &&
24014 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24015 )
24016 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024017 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024018 _res = f;
24019 if (_res == NULL && PyErr_Occurred()) {
24020 p->error_indicator = 1;
24021 D(p->level--);
24022 return NULL;
24023 }
24024 goto done;
24025 }
24026 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024027 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
24029 }
24030 _res = NULL;
24031 done:
24032 D(p->level--);
24033 return _res;
24034}
24035
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024036// _tmp_141: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024037static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024038_tmp_141_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024039{
24040 D(p->level++);
24041 if (p->error_indicator) {
24042 D(p->level--);
24043 return NULL;
24044 }
24045 void * _res = NULL;
24046 int _mark = p->mark;
24047 { // ',' star_expression
24048 if (p->error_indicator) {
24049 D(p->level--);
24050 return NULL;
24051 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024052 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024053 Token * _literal;
24054 expr_ty c;
24055 if (
24056 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24057 &&
24058 (c = star_expression_rule(p)) // star_expression
24059 )
24060 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024061 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024062 _res = c;
24063 if (_res == NULL && PyErr_Occurred()) {
24064 p->error_indicator = 1;
24065 D(p->level--);
24066 return NULL;
24067 }
24068 goto done;
24069 }
24070 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024071 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
24073 }
24074 _res = NULL;
24075 done:
24076 D(p->level--);
24077 return _res;
24078}
24079
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024080// _tmp_142: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024081static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024082_tmp_142_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024083{
24084 D(p->level++);
24085 if (p->error_indicator) {
24086 D(p->level--);
24087 return NULL;
24088 }
24089 void * _res = NULL;
24090 int _mark = p->mark;
24091 { // ',' expression
24092 if (p->error_indicator) {
24093 D(p->level--);
24094 return NULL;
24095 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024096 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024097 Token * _literal;
24098 expr_ty c;
24099 if (
24100 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24101 &&
24102 (c = expression_rule(p)) // expression
24103 )
24104 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024105 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024106 _res = c;
24107 if (_res == NULL && PyErr_Occurred()) {
24108 p->error_indicator = 1;
24109 D(p->level--);
24110 return NULL;
24111 }
24112 goto done;
24113 }
24114 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024115 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
24117 }
24118 _res = NULL;
24119 done:
24120 D(p->level--);
24121 return _res;
24122}
24123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024124// _tmp_143: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024125static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024126_tmp_143_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024127{
24128 D(p->level++);
24129 if (p->error_indicator) {
24130 D(p->level--);
24131 return NULL;
24132 }
24133 void * _res = NULL;
24134 int _mark = p->mark;
24135 { // 'or' conjunction
24136 if (p->error_indicator) {
24137 D(p->level--);
24138 return NULL;
24139 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024140 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024141 Token * _keyword;
24142 expr_ty c;
24143 if (
24144 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
24145 &&
24146 (c = conjunction_rule(p)) // conjunction
24147 )
24148 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024149 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024150 _res = c;
24151 if (_res == NULL && PyErr_Occurred()) {
24152 p->error_indicator = 1;
24153 D(p->level--);
24154 return NULL;
24155 }
24156 goto done;
24157 }
24158 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024159 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
24161 }
24162 _res = NULL;
24163 done:
24164 D(p->level--);
24165 return _res;
24166}
24167
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024168// _tmp_144: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024169static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024170_tmp_144_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024171{
24172 D(p->level++);
24173 if (p->error_indicator) {
24174 D(p->level--);
24175 return NULL;
24176 }
24177 void * _res = NULL;
24178 int _mark = p->mark;
24179 { // 'and' inversion
24180 if (p->error_indicator) {
24181 D(p->level--);
24182 return NULL;
24183 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024184 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024185 Token * _keyword;
24186 expr_ty c;
24187 if (
24188 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
24189 &&
24190 (c = inversion_rule(p)) // inversion
24191 )
24192 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024193 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024194 _res = c;
24195 if (_res == NULL && PyErr_Occurred()) {
24196 p->error_indicator = 1;
24197 D(p->level--);
24198 return NULL;
24199 }
24200 goto done;
24201 }
24202 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024203 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010024204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024205 }
24206 _res = NULL;
24207 done:
24208 D(p->level--);
24209 return _res;
24210}
24211
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024212// _tmp_145: 'if' disjunction
24213static void *
24214_tmp_145_rule(Parser *p)
24215{
24216 D(p->level++);
24217 if (p->error_indicator) {
24218 D(p->level--);
24219 return NULL;
24220 }
24221 void * _res = NULL;
24222 int _mark = p->mark;
24223 { // 'if' disjunction
24224 if (p->error_indicator) {
24225 D(p->level--);
24226 return NULL;
24227 }
24228 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24229 Token * _keyword;
24230 expr_ty z;
24231 if (
24232 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24233 &&
24234 (z = disjunction_rule(p)) // disjunction
24235 )
24236 {
24237 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24238 _res = z;
24239 if (_res == NULL && PyErr_Occurred()) {
24240 p->error_indicator = 1;
24241 D(p->level--);
24242 return NULL;
24243 }
24244 goto done;
24245 }
24246 p->mark = _mark;
24247 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
24248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24249 }
24250 _res = NULL;
24251 done:
24252 D(p->level--);
24253 return _res;
24254}
24255
24256// _tmp_146: 'if' disjunction
24257static void *
24258_tmp_146_rule(Parser *p)
24259{
24260 D(p->level++);
24261 if (p->error_indicator) {
24262 D(p->level--);
24263 return NULL;
24264 }
24265 void * _res = NULL;
24266 int _mark = p->mark;
24267 { // 'if' disjunction
24268 if (p->error_indicator) {
24269 D(p->level--);
24270 return NULL;
24271 }
24272 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24273 Token * _keyword;
24274 expr_ty z;
24275 if (
24276 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24277 &&
24278 (z = disjunction_rule(p)) // disjunction
24279 )
24280 {
24281 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24282 _res = z;
24283 if (_res == NULL && PyErr_Occurred()) {
24284 p->error_indicator = 1;
24285 D(p->level--);
24286 return NULL;
24287 }
24288 goto done;
24289 }
24290 p->mark = _mark;
24291 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
24292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24293 }
24294 _res = NULL;
24295 done:
24296 D(p->level--);
24297 return _res;
24298}
24299
24300// _tmp_147: starred_expression | named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024301static void *
24302_tmp_147_rule(Parser *p)
24303{
24304 D(p->level++);
24305 if (p->error_indicator) {
24306 D(p->level--);
24307 return NULL;
24308 }
24309 void * _res = NULL;
24310 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010024311 { // starred_expression
24312 if (p->error_indicator) {
24313 D(p->level--);
24314 return NULL;
24315 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024316 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024317 expr_ty starred_expression_var;
24318 if (
24319 (starred_expression_var = starred_expression_rule(p)) // starred_expression
24320 )
24321 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024322 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024323 _res = starred_expression_var;
24324 goto done;
24325 }
24326 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024327 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010024328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
24329 }
24330 { // named_expression !'='
24331 if (p->error_indicator) {
24332 D(p->level--);
24333 return NULL;
24334 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024335 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024336 expr_ty named_expression_var;
24337 if (
24338 (named_expression_var = named_expression_rule(p)) // named_expression
24339 &&
24340 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
24341 )
24342 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024343 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024344 _res = named_expression_var;
24345 goto done;
24346 }
24347 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024348 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010024349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
24350 }
24351 _res = NULL;
24352 done:
24353 D(p->level--);
24354 return _res;
24355}
24356
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024357// _tmp_148: ',' star_target
Pablo Galindo4a97b152020-09-02 17:44:19 +010024358static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024359_tmp_148_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010024360{
24361 D(p->level++);
24362 if (p->error_indicator) {
24363 D(p->level--);
24364 return NULL;
24365 }
24366 void * _res = NULL;
24367 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024368 { // ',' star_target
24369 if (p->error_indicator) {
24370 D(p->level--);
24371 return NULL;
24372 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024373 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024374 Token * _literal;
24375 expr_ty c;
24376 if (
24377 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24378 &&
24379 (c = star_target_rule(p)) // star_target
24380 )
24381 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024382 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024383 _res = c;
24384 if (_res == NULL && PyErr_Occurred()) {
24385 p->error_indicator = 1;
24386 D(p->level--);
24387 return NULL;
24388 }
24389 goto done;
24390 }
24391 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024392 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024394 }
24395 _res = NULL;
24396 done:
24397 D(p->level--);
24398 return _res;
24399}
24400
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024401// _tmp_149: star_targets '='
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024402static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024403_tmp_149_rule(Parser *p)
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024404{
24405 D(p->level++);
24406 if (p->error_indicator) {
24407 D(p->level--);
24408 return NULL;
24409 }
24410 void * _res = NULL;
24411 int _mark = p->mark;
24412 { // star_targets '='
24413 if (p->error_indicator) {
24414 D(p->level--);
24415 return NULL;
24416 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024417 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024418 Token * _literal;
24419 expr_ty star_targets_var;
24420 if (
24421 (star_targets_var = star_targets_rule(p)) // star_targets
24422 &&
24423 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24424 )
24425 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024426 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024427 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24428 goto done;
24429 }
24430 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024431 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24433 }
24434 _res = NULL;
24435 done:
24436 D(p->level--);
24437 return _res;
24438}
24439
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024440// _tmp_150: star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024441static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024442_tmp_150_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024443{
24444 D(p->level++);
24445 if (p->error_indicator) {
24446 D(p->level--);
24447 return NULL;
24448 }
24449 void * _res = NULL;
24450 int _mark = p->mark;
24451 { // star_targets '='
24452 if (p->error_indicator) {
24453 D(p->level--);
24454 return NULL;
24455 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024456 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024457 Token * _literal;
24458 expr_ty star_targets_var;
24459 if (
24460 (star_targets_var = star_targets_rule(p)) // star_targets
24461 &&
24462 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24463 )
24464 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024465 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024466 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24467 goto done;
24468 }
24469 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024470 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24472 }
24473 _res = NULL;
24474 done:
24475 D(p->level--);
24476 return _res;
24477}
24478
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024479// _loop1_151: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024480static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024481_loop1_151_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024482{
24483 D(p->level++);
24484 if (p->error_indicator) {
24485 D(p->level--);
24486 return NULL;
24487 }
24488 void *_res = NULL;
24489 int _mark = p->mark;
24490 int _start_mark = p->mark;
24491 void **_children = PyMem_Malloc(sizeof(void *));
24492 if (!_children) {
24493 p->error_indicator = 1;
24494 PyErr_NoMemory();
24495 D(p->level--);
24496 return NULL;
24497 }
24498 ssize_t _children_capacity = 1;
24499 ssize_t _n = 0;
24500 { // param_with_default
24501 if (p->error_indicator) {
24502 D(p->level--);
24503 return NULL;
24504 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024505 D(fprintf(stderr, "%*c> _loop1_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024506 NameDefaultPair* param_with_default_var;
24507 while (
24508 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24509 )
24510 {
24511 _res = param_with_default_var;
24512 if (_n == _children_capacity) {
24513 _children_capacity *= 2;
24514 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24515 if (!_new_children) {
24516 p->error_indicator = 1;
24517 PyErr_NoMemory();
24518 D(p->level--);
24519 return NULL;
24520 }
24521 _children = _new_children;
24522 }
24523 _children[_n++] = _res;
24524 _mark = p->mark;
24525 }
24526 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024527 D(fprintf(stderr, "%*c%s _loop1_151[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
24529 }
24530 if (_n == 0 || p->error_indicator) {
24531 PyMem_Free(_children);
24532 D(p->level--);
24533 return NULL;
24534 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024535 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024536 if (!_seq) {
24537 PyMem_Free(_children);
24538 p->error_indicator = 1;
24539 PyErr_NoMemory();
24540 D(p->level--);
24541 return NULL;
24542 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024543 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024544 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024545 _PyPegen_insert_memo(p, _start_mark, _loop1_151_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024546 D(p->level--);
24547 return _seq;
24548}
24549
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024550// _loop1_152: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024551static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024552_loop1_152_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024553{
24554 D(p->level++);
24555 if (p->error_indicator) {
24556 D(p->level--);
24557 return NULL;
24558 }
24559 void *_res = NULL;
24560 int _mark = p->mark;
24561 int _start_mark = p->mark;
24562 void **_children = PyMem_Malloc(sizeof(void *));
24563 if (!_children) {
24564 p->error_indicator = 1;
24565 PyErr_NoMemory();
24566 D(p->level--);
24567 return NULL;
24568 }
24569 ssize_t _children_capacity = 1;
24570 ssize_t _n = 0;
24571 { // lambda_param_with_default
24572 if (p->error_indicator) {
24573 D(p->level--);
24574 return NULL;
24575 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024576 D(fprintf(stderr, "%*c> _loop1_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024577 NameDefaultPair* lambda_param_with_default_var;
24578 while (
24579 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24580 )
24581 {
24582 _res = lambda_param_with_default_var;
24583 if (_n == _children_capacity) {
24584 _children_capacity *= 2;
24585 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24586 if (!_new_children) {
24587 p->error_indicator = 1;
24588 PyErr_NoMemory();
24589 D(p->level--);
24590 return NULL;
24591 }
24592 _children = _new_children;
24593 }
24594 _children[_n++] = _res;
24595 _mark = p->mark;
24596 }
24597 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024598 D(fprintf(stderr, "%*c%s _loop1_152[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24600 }
24601 if (_n == 0 || p->error_indicator) {
24602 PyMem_Free(_children);
24603 D(p->level--);
24604 return NULL;
24605 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024606 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024607 if (!_seq) {
24608 PyMem_Free(_children);
24609 p->error_indicator = 1;
24610 PyErr_NoMemory();
24611 D(p->level--);
24612 return NULL;
24613 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024614 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024615 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024616 _PyPegen_insert_memo(p, _start_mark, _loop1_152_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024617 D(p->level--);
24618 return _seq;
24619}
24620
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024621// _tmp_153: ')' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024622static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024623_tmp_153_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024624{
24625 D(p->level++);
24626 if (p->error_indicator) {
24627 D(p->level--);
24628 return NULL;
24629 }
24630 void * _res = NULL;
24631 int _mark = p->mark;
24632 { // ')'
24633 if (p->error_indicator) {
24634 D(p->level--);
24635 return NULL;
24636 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024637 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024638 Token * _literal;
24639 if (
24640 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24641 )
24642 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024643 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024644 _res = _literal;
24645 goto done;
24646 }
24647 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024648 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24650 }
24651 { // '**'
24652 if (p->error_indicator) {
24653 D(p->level--);
24654 return NULL;
24655 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024656 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024657 Token * _literal;
24658 if (
24659 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24660 )
24661 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024662 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024663 _res = _literal;
24664 goto done;
24665 }
24666 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024667 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24669 }
24670 _res = NULL;
24671 done:
24672 D(p->level--);
24673 return _res;
24674}
24675
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024676// _tmp_154: ':' | '**'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024677static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024678_tmp_154_rule(Parser *p)
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024679{
24680 D(p->level++);
24681 if (p->error_indicator) {
24682 D(p->level--);
24683 return NULL;
24684 }
24685 void * _res = NULL;
24686 int _mark = p->mark;
24687 { // ':'
24688 if (p->error_indicator) {
24689 D(p->level--);
24690 return NULL;
24691 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024692 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024693 Token * _literal;
24694 if (
24695 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24696 )
24697 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024698 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024699 _res = _literal;
24700 goto done;
24701 }
24702 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024703 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024705 }
24706 { // '**'
24707 if (p->error_indicator) {
24708 D(p->level--);
24709 return NULL;
24710 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024711 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024712 Token * _literal;
24713 if (
24714 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24715 )
24716 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024717 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024718 _res = _literal;
24719 goto done;
24720 }
24721 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024722 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24724 }
24725 _res = NULL;
24726 done:
24727 D(p->level--);
24728 return _res;
24729}
24730
24731void *
24732_PyPegen_parse(Parser *p)
24733{
24734 // Initialize keywords
24735 p->keywords = reserved_keywords;
24736 p->n_keyword_lists = n_keyword_lists;
24737
24738 // Run parser
24739 void *result = NULL;
24740 if (p->start_rule == Py_file_input) {
24741 result = file_rule(p);
24742 } else if (p->start_rule == Py_single_input) {
24743 result = interactive_rule(p);
24744 } else if (p->start_rule == Py_eval_input) {
24745 result = eval_rule(p);
24746 } else if (p->start_rule == Py_func_type_input) {
24747 result = func_type_rule(p);
24748 } else if (p->start_rule == Py_fstring_input) {
24749 result = fstring_rule(p);
24750 }
24751
24752 return result;
24753}
24754
24755// The end