blob: d9dd23c2d98f4f5210861ae70904469300b86ea6 [file] [log] [blame]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003
Miss Islington (bot)31084be2020-05-25 12:37:56 -07004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005extern int Py_DebugFlag;
6#define D(x) if (Py_DebugFlag) x;
7#else
8#define D(x)
9#endif
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010static const int n_keyword_lists = 15;
11static KeywordToken *reserved_keywords[] = {
Pablo Galindo54f115d2020-07-06 20:29:59 +010012 (KeywordToken[]) {{NULL, -1}},
13 (KeywordToken[]) {{NULL, -1}},
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014 (KeywordToken[]) {
15 {"if", 510},
16 {"in", 518},
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017 {"as", 520},
18 {"is", 527},
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019 {"or", 532},
20 {NULL, -1},
21 },
22 (KeywordToken[]) {
23 {"del", 503},
24 {"try", 511},
25 {"for", 517},
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030026 {"def", 523},
27 {"not", 526},
Pablo Galindoc5fc1562020-04-22 23:29:27 +010028 {"and", 533},
29 {NULL, -1},
30 },
31 (KeywordToken[]) {
32 {"pass", 502},
33 {"from", 514},
34 {"elif", 515},
35 {"else", 516},
36 {"with", 519},
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030037 {"True", 528},
38 {"None", 530},
Pablo Galindoc5fc1562020-04-22 23:29:27 +010039 {NULL, -1},
40 },
41 (KeywordToken[]) {
42 {"raise", 501},
43 {"yield", 504},
44 {"break", 506},
45 {"while", 512},
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030046 {"class", 524},
47 {"False", 529},
Pablo Galindoc5fc1562020-04-22 23:29:27 +010048 {NULL, -1},
49 },
50 (KeywordToken[]) {
51 {"return", 500},
52 {"assert", 505},
53 {"global", 508},
54 {"import", 513},
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030055 {"except", 521},
56 {"lambda", 525},
Pablo Galindoc5fc1562020-04-22 23:29:27 +010057 {NULL, -1},
58 },
59 (KeywordToken[]) {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030060 {"finally", 522},
Pablo Galindoc5fc1562020-04-22 23:29:27 +010061 {NULL, -1},
62 },
63 (KeywordToken[]) {
64 {"continue", 507},
65 {"nonlocal", 509},
66 {NULL, -1},
67 },
Pablo Galindo54f115d2020-07-06 20:29:59 +010068 (KeywordToken[]) {{NULL, -1}},
69 (KeywordToken[]) {{NULL, -1}},
70 (KeywordToken[]) {{NULL, -1}},
71 (KeywordToken[]) {{NULL, -1}},
72 (KeywordToken[]) {{NULL, -1}},
Pablo Galindoc5fc1562020-04-22 23:29:27 +010073 (KeywordToken[]) {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030074 {"__peg_parser__", 531},
Pablo Galindoc5fc1562020-04-22 23:29:27 +010075 {NULL, -1},
76 },
77};
78#define file_type 1000
79#define interactive_type 1001
80#define eval_type 1002
Guido van Rossumc001c092020-04-30 12:12:19 -070081#define func_type_type 1003
82#define fstring_type 1004
83#define type_expressions_type 1005
84#define statements_type 1006
85#define statement_type 1007
86#define statement_newline_type 1008
87#define simple_stmt_type 1009
88#define small_stmt_type 1010
89#define compound_stmt_type 1011
90#define assignment_type 1012
91#define augassign_type 1013
92#define global_stmt_type 1014
93#define nonlocal_stmt_type 1015
94#define yield_stmt_type 1016
95#define assert_stmt_type 1017
96#define del_stmt_type 1018
97#define import_stmt_type 1019
98#define import_name_type 1020
99#define import_from_type 1021
100#define import_from_targets_type 1022
101#define import_from_as_names_type 1023
102#define import_from_as_name_type 1024
103#define dotted_as_names_type 1025
104#define dotted_as_name_type 1026
105#define dotted_name_type 1027 // Left-recursive
106#define if_stmt_type 1028
107#define elif_stmt_type 1029
108#define else_block_type 1030
109#define while_stmt_type 1031
110#define for_stmt_type 1032
111#define with_stmt_type 1033
112#define with_item_type 1034
113#define try_stmt_type 1035
114#define except_block_type 1036
115#define finally_block_type 1037
116#define return_stmt_type 1038
117#define raise_stmt_type 1039
118#define function_def_type 1040
119#define function_def_raw_type 1041
120#define func_type_comment_type 1042
121#define params_type 1043
122#define parameters_type 1044
123#define slash_no_default_type 1045
124#define slash_with_default_type 1046
125#define star_etc_type 1047
126#define kwds_type 1048
127#define param_no_default_type 1049
128#define param_with_default_type 1050
129#define param_maybe_default_type 1051
130#define param_type 1052
131#define annotation_type 1053
132#define default_type 1054
133#define decorators_type 1055
134#define class_def_type 1056
135#define class_def_raw_type 1057
136#define block_type 1058
137#define expressions_list_type 1059
138#define star_expressions_type 1060
139#define star_expression_type 1061
140#define star_named_expressions_type 1062
141#define star_named_expression_type 1063
142#define named_expression_type 1064
143#define annotated_rhs_type 1065
144#define expressions_type 1066
145#define expression_type 1067
146#define lambdef_type 1068
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700147#define lambda_params_type 1069
148#define lambda_parameters_type 1070
149#define lambda_slash_no_default_type 1071
150#define lambda_slash_with_default_type 1072
151#define lambda_star_etc_type 1073
152#define lambda_kwds_type 1074
153#define lambda_param_no_default_type 1075
154#define lambda_param_with_default_type 1076
155#define lambda_param_maybe_default_type 1077
156#define lambda_param_type 1078
157#define disjunction_type 1079
158#define conjunction_type 1080
159#define inversion_type 1081
160#define comparison_type 1082
161#define compare_op_bitwise_or_pair_type 1083
162#define eq_bitwise_or_type 1084
163#define noteq_bitwise_or_type 1085
164#define lte_bitwise_or_type 1086
165#define lt_bitwise_or_type 1087
166#define gte_bitwise_or_type 1088
167#define gt_bitwise_or_type 1089
168#define notin_bitwise_or_type 1090
169#define in_bitwise_or_type 1091
170#define isnot_bitwise_or_type 1092
171#define is_bitwise_or_type 1093
172#define bitwise_or_type 1094 // Left-recursive
173#define bitwise_xor_type 1095 // Left-recursive
174#define bitwise_and_type 1096 // Left-recursive
175#define shift_expr_type 1097 // Left-recursive
176#define sum_type 1098 // Left-recursive
177#define term_type 1099 // Left-recursive
178#define factor_type 1100
179#define power_type 1101
180#define await_primary_type 1102
181#define primary_type 1103 // Left-recursive
182#define slices_type 1104
183#define slice_type 1105
184#define atom_type 1106
185#define strings_type 1107
186#define list_type 1108
187#define listcomp_type 1109
188#define tuple_type 1110
189#define group_type 1111
190#define genexp_type 1112
191#define set_type 1113
192#define setcomp_type 1114
193#define dict_type 1115
194#define dictcomp_type 1116
195#define double_starred_kvpairs_type 1117
196#define double_starred_kvpair_type 1118
197#define kvpair_type 1119
198#define for_if_clauses_type 1120
199#define for_if_clause_type 1121
200#define yield_expr_type 1122
201#define arguments_type 1123
202#define args_type 1124
203#define kwargs_type 1125
204#define starred_expression_type 1126
205#define kwarg_or_starred_type 1127
206#define kwarg_or_double_starred_type 1128
207#define star_targets_type 1129
208#define star_targets_seq_type 1130
209#define star_target_type 1131
210#define star_atom_type 1132
211#define single_target_type 1133
212#define single_subscript_attribute_target_type 1134
213#define del_targets_type 1135
214#define del_target_type 1136
215#define del_t_atom_type 1137
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300216#define targets_type 1138
217#define target_type 1139
218#define t_primary_type 1140 // Left-recursive
219#define t_lookahead_type 1141
220#define t_atom_type 1142
221#define incorrect_arguments_type 1143
222#define invalid_kwarg_type 1144
223#define invalid_named_expression_type 1145
224#define invalid_assignment_type 1146
Pablo Galindo102ca522020-06-28 00:40:41 +0100225#define invalid_ann_assign_target_type 1147
226#define invalid_del_stmt_type 1148
227#define invalid_block_type 1149
228#define invalid_comprehension_type 1150
229#define invalid_dict_comprehension_type 1151
230#define invalid_parameters_type 1152
231#define invalid_lambda_parameters_type 1153
232#define invalid_star_etc_type 1154
233#define invalid_lambda_star_etc_type 1155
234#define invalid_double_type_comments_type 1156
235#define invalid_with_item_type 1157
236#define invalid_for_target_type 1158
237#define invalid_group_type 1159
238#define invalid_import_from_targets_type 1160
239#define _loop0_1_type 1161
240#define _loop0_2_type 1162
241#define _loop0_4_type 1163
242#define _gather_3_type 1164
243#define _loop0_6_type 1165
244#define _gather_5_type 1166
245#define _loop0_8_type 1167
246#define _gather_7_type 1168
247#define _loop0_10_type 1169
248#define _gather_9_type 1170
249#define _loop1_11_type 1171
250#define _loop0_13_type 1172
251#define _gather_12_type 1173
252#define _tmp_14_type 1174
253#define _tmp_15_type 1175
254#define _tmp_16_type 1176
255#define _tmp_17_type 1177
256#define _tmp_18_type 1178
257#define _tmp_19_type 1179
258#define _tmp_20_type 1180
259#define _tmp_21_type 1181
260#define _loop1_22_type 1182
261#define _tmp_23_type 1183
262#define _tmp_24_type 1184
263#define _loop0_26_type 1185
264#define _gather_25_type 1186
265#define _loop0_28_type 1187
266#define _gather_27_type 1188
267#define _tmp_29_type 1189
268#define _tmp_30_type 1190
269#define _loop0_31_type 1191
270#define _loop1_32_type 1192
271#define _loop0_34_type 1193
272#define _gather_33_type 1194
273#define _tmp_35_type 1195
274#define _loop0_37_type 1196
275#define _gather_36_type 1197
276#define _tmp_38_type 1198
277#define _loop0_40_type 1199
278#define _gather_39_type 1200
279#define _loop0_42_type 1201
280#define _gather_41_type 1202
281#define _loop0_44_type 1203
282#define _gather_43_type 1204
283#define _loop0_46_type 1205
284#define _gather_45_type 1206
285#define _tmp_47_type 1207
286#define _loop1_48_type 1208
287#define _tmp_49_type 1209
288#define _tmp_50_type 1210
289#define _tmp_51_type 1211
290#define _tmp_52_type 1212
291#define _tmp_53_type 1213
292#define _loop0_54_type 1214
293#define _loop0_55_type 1215
294#define _loop0_56_type 1216
295#define _loop1_57_type 1217
296#define _loop0_58_type 1218
297#define _loop1_59_type 1219
298#define _loop1_60_type 1220
299#define _loop1_61_type 1221
300#define _loop0_62_type 1222
301#define _loop1_63_type 1223
302#define _loop0_64_type 1224
303#define _loop1_65_type 1225
304#define _loop0_66_type 1226
305#define _loop1_67_type 1227
306#define _loop1_68_type 1228
307#define _tmp_69_type 1229
308#define _loop0_71_type 1230
309#define _gather_70_type 1231
310#define _loop1_72_type 1232
311#define _loop0_74_type 1233
312#define _gather_73_type 1234
313#define _loop1_75_type 1235
314#define _loop0_76_type 1236
315#define _loop0_77_type 1237
316#define _loop0_78_type 1238
317#define _loop1_79_type 1239
318#define _loop0_80_type 1240
319#define _loop1_81_type 1241
320#define _loop1_82_type 1242
321#define _loop1_83_type 1243
322#define _loop0_84_type 1244
323#define _loop1_85_type 1245
324#define _loop0_86_type 1246
325#define _loop1_87_type 1247
326#define _loop0_88_type 1248
327#define _loop1_89_type 1249
328#define _loop1_90_type 1250
329#define _loop1_91_type 1251
330#define _loop1_92_type 1252
331#define _tmp_93_type 1253
332#define _loop0_95_type 1254
333#define _gather_94_type 1255
334#define _tmp_96_type 1256
335#define _tmp_97_type 1257
336#define _tmp_98_type 1258
337#define _tmp_99_type 1259
338#define _loop1_100_type 1260
339#define _tmp_101_type 1261
340#define _tmp_102_type 1262
341#define _loop0_104_type 1263
342#define _gather_103_type 1264
343#define _loop1_105_type 1265
344#define _loop0_106_type 1266
345#define _loop0_107_type 1267
346#define _tmp_108_type 1268
347#define _tmp_109_type 1269
348#define _loop0_111_type 1270
349#define _gather_110_type 1271
350#define _loop0_113_type 1272
351#define _gather_112_type 1273
352#define _loop0_115_type 1274
353#define _gather_114_type 1275
354#define _loop0_117_type 1276
355#define _gather_116_type 1277
356#define _loop0_118_type 1278
357#define _loop0_120_type 1279
358#define _gather_119_type 1280
359#define _tmp_121_type 1281
360#define _loop0_123_type 1282
361#define _gather_122_type 1283
362#define _loop0_125_type 1284
363#define _gather_124_type 1285
364#define _tmp_126_type 1286
365#define _loop0_127_type 1287
366#define _loop0_128_type 1288
367#define _loop0_129_type 1289
368#define _tmp_130_type 1290
369#define _tmp_131_type 1291
370#define _loop0_132_type 1292
371#define _tmp_133_type 1293
372#define _loop0_134_type 1294
373#define _tmp_135_type 1295
374#define _tmp_136_type 1296
375#define _tmp_137_type 1297
376#define _tmp_138_type 1298
377#define _tmp_139_type 1299
378#define _tmp_140_type 1300
379#define _tmp_141_type 1301
380#define _tmp_142_type 1302
381#define _tmp_143_type 1303
382#define _tmp_144_type 1304
383#define _tmp_145_type 1305
384#define _tmp_146_type 1306
385#define _tmp_147_type 1307
386#define _tmp_148_type 1308
387#define _tmp_149_type 1309
388#define _tmp_150_type 1310
389#define _loop1_151_type 1311
390#define _loop1_152_type 1312
391#define _tmp_153_type 1313
392#define _tmp_154_type 1314
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100393
394static mod_ty file_rule(Parser *p);
395static mod_ty interactive_rule(Parser *p);
396static mod_ty eval_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700397static mod_ty func_type_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100398static expr_ty fstring_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700399static asdl_seq* type_expressions_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100400static asdl_seq* statements_rule(Parser *p);
401static asdl_seq* statement_rule(Parser *p);
402static asdl_seq* statement_newline_rule(Parser *p);
403static asdl_seq* simple_stmt_rule(Parser *p);
404static stmt_ty small_stmt_rule(Parser *p);
405static stmt_ty compound_stmt_rule(Parser *p);
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +0300406static stmt_ty assignment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100407static AugOperator* augassign_rule(Parser *p);
408static stmt_ty global_stmt_rule(Parser *p);
409static stmt_ty nonlocal_stmt_rule(Parser *p);
410static stmt_ty yield_stmt_rule(Parser *p);
411static stmt_ty assert_stmt_rule(Parser *p);
412static stmt_ty del_stmt_rule(Parser *p);
413static stmt_ty import_stmt_rule(Parser *p);
414static stmt_ty import_name_rule(Parser *p);
415static stmt_ty import_from_rule(Parser *p);
416static asdl_seq* import_from_targets_rule(Parser *p);
417static asdl_seq* import_from_as_names_rule(Parser *p);
418static alias_ty import_from_as_name_rule(Parser *p);
419static asdl_seq* dotted_as_names_rule(Parser *p);
420static alias_ty dotted_as_name_rule(Parser *p);
421static expr_ty dotted_name_rule(Parser *p);
422static stmt_ty if_stmt_rule(Parser *p);
423static stmt_ty elif_stmt_rule(Parser *p);
424static asdl_seq* else_block_rule(Parser *p);
425static stmt_ty while_stmt_rule(Parser *p);
426static stmt_ty for_stmt_rule(Parser *p);
427static stmt_ty with_stmt_rule(Parser *p);
428static withitem_ty with_item_rule(Parser *p);
429static stmt_ty try_stmt_rule(Parser *p);
430static excepthandler_ty except_block_rule(Parser *p);
431static asdl_seq* finally_block_rule(Parser *p);
432static stmt_ty return_stmt_rule(Parser *p);
433static stmt_ty raise_stmt_rule(Parser *p);
434static stmt_ty function_def_rule(Parser *p);
435static stmt_ty function_def_raw_rule(Parser *p);
Pablo Galindod9552412020-05-01 16:32:09 +0100436static Token* func_type_comment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100437static arguments_ty params_rule(Parser *p);
438static arguments_ty parameters_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700439static asdl_seq* slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100440static SlashWithDefault* slash_with_default_rule(Parser *p);
441static StarEtc* star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100442static arg_ty kwds_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700443static arg_ty param_no_default_rule(Parser *p);
444static NameDefaultPair* param_with_default_rule(Parser *p);
445static NameDefaultPair* param_maybe_default_rule(Parser *p);
446static arg_ty param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100447static expr_ty annotation_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700448static expr_ty default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100449static asdl_seq* decorators_rule(Parser *p);
450static stmt_ty class_def_rule(Parser *p);
451static stmt_ty class_def_raw_rule(Parser *p);
452static asdl_seq* block_rule(Parser *p);
453static asdl_seq* expressions_list_rule(Parser *p);
454static expr_ty star_expressions_rule(Parser *p);
455static expr_ty star_expression_rule(Parser *p);
456static asdl_seq* star_named_expressions_rule(Parser *p);
457static expr_ty star_named_expression_rule(Parser *p);
458static expr_ty named_expression_rule(Parser *p);
459static expr_ty annotated_rhs_rule(Parser *p);
460static expr_ty expressions_rule(Parser *p);
461static expr_ty expression_rule(Parser *p);
462static expr_ty lambdef_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700463static arguments_ty lambda_params_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100464static arguments_ty lambda_parameters_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700465static asdl_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100466static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
467static StarEtc* lambda_star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100468static arg_ty lambda_kwds_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700469static arg_ty lambda_param_no_default_rule(Parser *p);
470static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
471static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
472static arg_ty lambda_param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100473static expr_ty disjunction_rule(Parser *p);
474static expr_ty conjunction_rule(Parser *p);
475static expr_ty inversion_rule(Parser *p);
476static expr_ty comparison_rule(Parser *p);
477static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
478static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
479static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
480static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
481static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
482static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
483static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
484static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
485static CmpopExprPair* in_bitwise_or_rule(Parser *p);
486static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
487static CmpopExprPair* is_bitwise_or_rule(Parser *p);
488static expr_ty bitwise_or_rule(Parser *p);
489static expr_ty bitwise_xor_rule(Parser *p);
490static expr_ty bitwise_and_rule(Parser *p);
491static expr_ty shift_expr_rule(Parser *p);
492static expr_ty sum_rule(Parser *p);
493static expr_ty term_rule(Parser *p);
494static expr_ty factor_rule(Parser *p);
495static expr_ty power_rule(Parser *p);
496static expr_ty await_primary_rule(Parser *p);
497static expr_ty primary_rule(Parser *p);
498static expr_ty slices_rule(Parser *p);
499static expr_ty slice_rule(Parser *p);
500static expr_ty atom_rule(Parser *p);
501static expr_ty strings_rule(Parser *p);
502static expr_ty list_rule(Parser *p);
503static expr_ty listcomp_rule(Parser *p);
504static expr_ty tuple_rule(Parser *p);
505static expr_ty group_rule(Parser *p);
506static expr_ty genexp_rule(Parser *p);
507static expr_ty set_rule(Parser *p);
508static expr_ty setcomp_rule(Parser *p);
509static expr_ty dict_rule(Parser *p);
510static expr_ty dictcomp_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700511static asdl_seq* double_starred_kvpairs_rule(Parser *p);
512static KeyValuePair* double_starred_kvpair_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100513static KeyValuePair* kvpair_rule(Parser *p);
514static asdl_seq* for_if_clauses_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300515static comprehension_ty for_if_clause_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100516static expr_ty yield_expr_rule(Parser *p);
517static expr_ty arguments_rule(Parser *p);
518static expr_ty args_rule(Parser *p);
519static asdl_seq* kwargs_rule(Parser *p);
520static expr_ty starred_expression_rule(Parser *p);
521static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
522static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
523static expr_ty star_targets_rule(Parser *p);
524static asdl_seq* star_targets_seq_rule(Parser *p);
525static expr_ty star_target_rule(Parser *p);
526static expr_ty star_atom_rule(Parser *p);
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +0300527static expr_ty single_target_rule(Parser *p);
528static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100529static asdl_seq* del_targets_rule(Parser *p);
530static expr_ty del_target_rule(Parser *p);
531static expr_ty del_t_atom_rule(Parser *p);
532static asdl_seq* targets_rule(Parser *p);
533static expr_ty target_rule(Parser *p);
534static expr_ty t_primary_rule(Parser *p);
535static void *t_lookahead_rule(Parser *p);
536static expr_ty t_atom_rule(Parser *p);
537static void *incorrect_arguments_rule(Parser *p);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +0300538static void *invalid_kwarg_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100539static void *invalid_named_expression_rule(Parser *p);
540static void *invalid_assignment_rule(Parser *p);
Pablo Galindo102ca522020-06-28 00:40:41 +0100541static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300542static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100543static void *invalid_block_rule(Parser *p);
544static void *invalid_comprehension_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700545static void *invalid_dict_comprehension_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100546static void *invalid_parameters_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700547static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300548static void *invalid_star_etc_rule(Parser *p);
549static void *invalid_lambda_star_etc_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700550static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300551static void *invalid_with_item_rule(Parser *p);
552static void *invalid_for_target_rule(Parser *p);
553static void *invalid_group_rule(Parser *p);
Pablo Galindo275d7e12020-05-21 22:04:54 +0100554static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100555static asdl_seq *_loop0_1_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700556static asdl_seq *_loop0_2_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100557static asdl_seq *_loop0_4_rule(Parser *p);
558static asdl_seq *_gather_3_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700559static asdl_seq *_loop0_6_rule(Parser *p);
560static asdl_seq *_gather_5_rule(Parser *p);
561static asdl_seq *_loop0_8_rule(Parser *p);
562static asdl_seq *_gather_7_rule(Parser *p);
563static asdl_seq *_loop0_10_rule(Parser *p);
564static asdl_seq *_gather_9_rule(Parser *p);
565static asdl_seq *_loop1_11_rule(Parser *p);
566static asdl_seq *_loop0_13_rule(Parser *p);
567static asdl_seq *_gather_12_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100568static void *_tmp_14_rule(Parser *p);
569static void *_tmp_15_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700570static void *_tmp_16_rule(Parser *p);
571static void *_tmp_17_rule(Parser *p);
572static void *_tmp_18_rule(Parser *p);
573static void *_tmp_19_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100574static void *_tmp_20_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700575static void *_tmp_21_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100576static asdl_seq *_loop1_22_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700577static void *_tmp_23_rule(Parser *p);
578static void *_tmp_24_rule(Parser *p);
579static asdl_seq *_loop0_26_rule(Parser *p);
580static asdl_seq *_gather_25_rule(Parser *p);
581static asdl_seq *_loop0_28_rule(Parser *p);
582static asdl_seq *_gather_27_rule(Parser *p);
583static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300584static void *_tmp_30_rule(Parser *p);
585static asdl_seq *_loop0_31_rule(Parser *p);
586static asdl_seq *_loop1_32_rule(Parser *p);
587static asdl_seq *_loop0_34_rule(Parser *p);
588static asdl_seq *_gather_33_rule(Parser *p);
589static void *_tmp_35_rule(Parser *p);
590static asdl_seq *_loop0_37_rule(Parser *p);
591static asdl_seq *_gather_36_rule(Parser *p);
592static void *_tmp_38_rule(Parser *p);
593static asdl_seq *_loop0_40_rule(Parser *p);
594static asdl_seq *_gather_39_rule(Parser *p);
595static asdl_seq *_loop0_42_rule(Parser *p);
596static asdl_seq *_gather_41_rule(Parser *p);
597static asdl_seq *_loop0_44_rule(Parser *p);
598static asdl_seq *_gather_43_rule(Parser *p);
599static asdl_seq *_loop0_46_rule(Parser *p);
600static asdl_seq *_gather_45_rule(Parser *p);
601static void *_tmp_47_rule(Parser *p);
602static asdl_seq *_loop1_48_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300603static void *_tmp_49_rule(Parser *p);
604static void *_tmp_50_rule(Parser *p);
605static void *_tmp_51_rule(Parser *p);
606static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300607static void *_tmp_53_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300608static asdl_seq *_loop0_54_rule(Parser *p);
609static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300610static asdl_seq *_loop0_56_rule(Parser *p);
611static asdl_seq *_loop1_57_rule(Parser *p);
612static asdl_seq *_loop0_58_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700613static asdl_seq *_loop1_59_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300614static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300615static asdl_seq *_loop1_61_rule(Parser *p);
616static asdl_seq *_loop0_62_rule(Parser *p);
617static asdl_seq *_loop1_63_rule(Parser *p);
618static asdl_seq *_loop0_64_rule(Parser *p);
619static asdl_seq *_loop1_65_rule(Parser *p);
620static asdl_seq *_loop0_66_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300621static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300622static asdl_seq *_loop1_68_rule(Parser *p);
623static void *_tmp_69_rule(Parser *p);
624static asdl_seq *_loop0_71_rule(Parser *p);
625static asdl_seq *_gather_70_rule(Parser *p);
626static asdl_seq *_loop1_72_rule(Parser *p);
627static asdl_seq *_loop0_74_rule(Parser *p);
628static asdl_seq *_gather_73_rule(Parser *p);
629static asdl_seq *_loop1_75_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700630static asdl_seq *_loop0_76_rule(Parser *p);
631static asdl_seq *_loop0_77_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300632static asdl_seq *_loop0_78_rule(Parser *p);
633static asdl_seq *_loop1_79_rule(Parser *p);
634static asdl_seq *_loop0_80_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700635static asdl_seq *_loop1_81_rule(Parser *p);
636static asdl_seq *_loop1_82_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300637static asdl_seq *_loop1_83_rule(Parser *p);
638static asdl_seq *_loop0_84_rule(Parser *p);
639static asdl_seq *_loop1_85_rule(Parser *p);
640static asdl_seq *_loop0_86_rule(Parser *p);
641static asdl_seq *_loop1_87_rule(Parser *p);
642static asdl_seq *_loop0_88_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700643static asdl_seq *_loop1_89_rule(Parser *p);
644static asdl_seq *_loop1_90_rule(Parser *p);
645static asdl_seq *_loop1_91_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300646static asdl_seq *_loop1_92_rule(Parser *p);
647static void *_tmp_93_rule(Parser *p);
648static asdl_seq *_loop0_95_rule(Parser *p);
649static asdl_seq *_gather_94_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700650static void *_tmp_96_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700651static void *_tmp_97_rule(Parser *p);
652static void *_tmp_98_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300653static void *_tmp_99_rule(Parser *p);
654static asdl_seq *_loop1_100_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300655static void *_tmp_101_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300656static void *_tmp_102_rule(Parser *p);
657static asdl_seq *_loop0_104_rule(Parser *p);
658static asdl_seq *_gather_103_rule(Parser *p);
659static asdl_seq *_loop1_105_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700660static asdl_seq *_loop0_106_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300661static asdl_seq *_loop0_107_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700662static void *_tmp_108_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300663static void *_tmp_109_rule(Parser *p);
664static asdl_seq *_loop0_111_rule(Parser *p);
665static asdl_seq *_gather_110_rule(Parser *p);
666static asdl_seq *_loop0_113_rule(Parser *p);
667static asdl_seq *_gather_112_rule(Parser *p);
668static asdl_seq *_loop0_115_rule(Parser *p);
669static asdl_seq *_gather_114_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700670static asdl_seq *_loop0_117_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300671static asdl_seq *_gather_116_rule(Parser *p);
672static asdl_seq *_loop0_118_rule(Parser *p);
673static asdl_seq *_loop0_120_rule(Parser *p);
674static asdl_seq *_gather_119_rule(Parser *p);
675static void *_tmp_121_rule(Parser *p);
676static asdl_seq *_loop0_123_rule(Parser *p);
677static asdl_seq *_gather_122_rule(Parser *p);
678static asdl_seq *_loop0_125_rule(Parser *p);
679static asdl_seq *_gather_124_rule(Parser *p);
680static void *_tmp_126_rule(Parser *p);
681static asdl_seq *_loop0_127_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300682static asdl_seq *_loop0_128_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700683static asdl_seq *_loop0_129_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300684static void *_tmp_130_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700685static void *_tmp_131_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300686static asdl_seq *_loop0_132_rule(Parser *p);
687static void *_tmp_133_rule(Parser *p);
688static asdl_seq *_loop0_134_rule(Parser *p);
689static void *_tmp_135_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700690static void *_tmp_136_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100691static void *_tmp_137_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700692static void *_tmp_138_rule(Parser *p);
693static void *_tmp_139_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300694static void *_tmp_140_rule(Parser *p);
695static void *_tmp_141_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700696static void *_tmp_142_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300697static void *_tmp_143_rule(Parser *p);
698static void *_tmp_144_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300699static void *_tmp_145_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700700static void *_tmp_146_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300701static void *_tmp_147_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300702static void *_tmp_148_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700703static void *_tmp_149_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700704static void *_tmp_150_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300705static asdl_seq *_loop1_151_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700706static asdl_seq *_loop1_152_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300707static void *_tmp_153_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700708static void *_tmp_154_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100709
710
711// file: statements? $
712static mod_ty
713file_rule(Parser *p)
714{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700715 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100718 return NULL;
719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100720 mod_ty _res = NULL;
721 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100722 { // statements? $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300723 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700724 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300725 return NULL;
726 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700727 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100728 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100729 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100730 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100731 (a = statements_rule(p), 1) // statements?
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100732 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100733 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100734 )
735 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700736 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100737 _res = _PyPegen_make_module ( p , a );
738 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100739 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100741 return NULL;
742 }
743 goto done;
744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100745 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700746 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100749 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100750 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700751 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100752 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100753}
754
755// interactive: statement_newline
756static mod_ty
757interactive_rule(Parser *p)
758{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700759 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100762 return NULL;
763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100764 mod_ty _res = NULL;
765 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100766 { // statement_newline
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700768 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300769 return NULL;
770 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700771 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100772 asdl_seq* a;
773 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100774 (a = statement_newline_rule(p)) // statement_newline
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100775 )
776 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700777 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100778 _res = Interactive ( a , p -> arena );
779 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100780 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100782 return NULL;
783 }
784 goto done;
785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100786 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700787 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100790 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100791 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700792 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100793 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100794}
795
796// eval: expressions NEWLINE* $
797static mod_ty
798eval_rule(Parser *p)
799{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700800 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700802 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100803 return NULL;
804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100805 mod_ty _res = NULL;
806 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100807 { // expressions NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300808 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700809 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300810 return NULL;
811 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700812 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100813 asdl_seq * _loop0_1_var;
814 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100815 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100816 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100817 (a = expressions_rule(p)) // expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100818 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100819 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100820 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100821 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100822 )
823 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700824 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100825 _res = Expression ( a , p -> arena );
826 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100827 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100829 return NULL;
830 }
831 goto done;
832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100833 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700834 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100837 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100838 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700839 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100840 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100841}
842
Guido van Rossumc001c092020-04-30 12:12:19 -0700843// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
844static mod_ty
845func_type_rule(Parser *p)
846{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700847 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700849 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700850 return NULL;
851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100852 mod_ty _res = NULL;
853 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700854 { // '(' type_expressions? ')' '->' expression NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300855 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700856 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300857 return NULL;
858 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700859 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100860 Token * _literal;
861 Token * _literal_1;
862 Token * _literal_2;
Guido van Rossumc001c092020-04-30 12:12:19 -0700863 asdl_seq * _loop0_2_var;
864 void *a;
865 expr_ty b;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100866 Token * endmarker_var;
Guido van Rossumc001c092020-04-30 12:12:19 -0700867 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100868 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Guido van Rossumc001c092020-04-30 12:12:19 -0700869 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100870 (a = type_expressions_rule(p), 1) // type_expressions?
Guido van Rossumc001c092020-04-30 12:12:19 -0700871 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100872 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -0700873 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100874 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
Guido van Rossumc001c092020-04-30 12:12:19 -0700875 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100876 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700877 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100878 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
Guido van Rossumc001c092020-04-30 12:12:19 -0700879 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100880 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Guido van Rossumc001c092020-04-30 12:12:19 -0700881 )
882 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700883 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100884 _res = FunctionType ( a , b , p -> arena );
885 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700886 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700887 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700888 return NULL;
889 }
890 goto done;
891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100892 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700893 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100896 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -0700897 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700898 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100899 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -0700900}
901
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100902// fstring: star_expressions
903static expr_ty
904fstring_rule(Parser *p)
905{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700906 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100907 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100909 return NULL;
910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100911 expr_ty _res = NULL;
912 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100913 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300914 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700915 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300916 return NULL;
917 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700918 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100919 expr_ty star_expressions_var;
920 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100921 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100922 )
923 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700924 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100925 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100926 goto done;
927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100928 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700929 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100932 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100933 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700934 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100935 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100936}
937
Guido van Rossumc001c092020-04-30 12:12:19 -0700938// type_expressions:
939// | ','.expression+ ',' '*' expression ',' '**' expression
940// | ','.expression+ ',' '*' expression
941// | ','.expression+ ',' '**' expression
Shantanu603d3542020-05-03 22:08:14 -0700942// | '*' expression ',' '**' expression
943// | '*' expression
944// | '**' expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700945// | ','.expression+
946static asdl_seq*
947type_expressions_rule(Parser *p)
948{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700949 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700951 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700952 return NULL;
953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100954 asdl_seq* _res = NULL;
955 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700956 { // ','.expression+ ',' '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300957 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700958 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300959 return NULL;
960 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700961 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100962 Token * _literal;
963 Token * _literal_1;
964 Token * _literal_2;
965 Token * _literal_3;
Guido van Rossumc001c092020-04-30 12:12:19 -0700966 asdl_seq * a;
967 expr_ty b;
968 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -0700969 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100970 (a = _gather_3_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -0700971 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100972 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700973 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100974 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -0700975 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100976 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700977 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100978 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700979 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100980 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -0700981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100982 (c = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700983 )
984 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700985 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100986 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
987 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700988 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700989 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700990 return NULL;
991 }
992 goto done;
993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100994 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700995 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700997 }
998 { // ','.expression+ ',' '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001000 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001001 return NULL;
1002 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001003 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001004 Token * _literal;
1005 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001006 asdl_seq * a;
1007 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001008 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001009 (a = _gather_5_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001010 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001011 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001012 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001013 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -07001014 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001015 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001016 )
1017 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001018 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001019 _res = _PyPegen_seq_append_to_end ( p , a , b );
1020 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001021 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001022 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001023 return NULL;
1024 }
1025 goto done;
1026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001027 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001028 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001030 }
1031 { // ','.expression+ ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001032 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001033 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001034 return NULL;
1035 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001036 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001037 Token * _literal;
1038 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001039 asdl_seq * a;
1040 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001041 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001042 (a = _gather_7_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001043 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001044 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001045 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001046 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07001047 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001048 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001049 )
1050 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001051 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001052 _res = _PyPegen_seq_append_to_end ( p , a , b );
1053 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001054 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001055 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001056 return NULL;
1057 }
1058 goto done;
1059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001060 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001061 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001063 }
Shantanu603d3542020-05-03 22:08:14 -07001064 { // '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001066 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001067 return NULL;
1068 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001069 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001070 Token * _literal;
1071 Token * _literal_1;
1072 Token * _literal_2;
Shantanu603d3542020-05-03 22:08:14 -07001073 expr_ty a;
1074 expr_ty b;
Shantanu603d3542020-05-03 22:08:14 -07001075 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001076 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001077 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001078 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001079 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001080 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Shantanu603d3542020-05-03 22:08:14 -07001081 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001082 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001083 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001084 (b = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001085 )
1086 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001087 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001088 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_singleton_seq ( p , a ) ) , b );
1089 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001090 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001091 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001092 return NULL;
1093 }
1094 goto done;
1095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001096 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001097 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001099 }
1100 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001101 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001102 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001103 return NULL;
1104 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001105 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001106 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001107 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001108 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001109 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001110 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001111 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001112 )
1113 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001114 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001115 _res = _PyPegen_singleton_seq ( p , a );
1116 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001117 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001118 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001119 return NULL;
1120 }
1121 goto done;
1122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001123 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001124 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001126 }
1127 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001129 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001130 return NULL;
1131 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001132 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001133 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001134 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001135 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001136 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001137 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001138 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001139 )
1140 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001141 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001142 _res = _PyPegen_singleton_seq ( p , a );
1143 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001144 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001145 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001146 return NULL;
1147 }
1148 goto done;
1149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001150 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001151 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001153 }
Guido van Rossumc001c092020-04-30 12:12:19 -07001154 { // ','.expression+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001156 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001157 return NULL;
1158 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001159 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001160 asdl_seq * _gather_9_var;
1161 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001162 (_gather_9_var = _gather_9_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001163 )
1164 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001165 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001166 _res = _gather_9_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07001167 goto done;
1168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001169 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001170 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001173 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07001174 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001175 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001176 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07001177}
1178
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001179// statements: statement+
1180static asdl_seq*
1181statements_rule(Parser *p)
1182{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001183 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001185 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001186 return NULL;
1187 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001188 asdl_seq* _res = NULL;
1189 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001190 { // statement+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001192 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001193 return NULL;
1194 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001195 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001196 asdl_seq * a;
1197 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001198 (a = _loop1_11_rule(p)) // statement+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001199 )
1200 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001201 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001202 _res = _PyPegen_seq_flatten ( p , a );
1203 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001204 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001206 return NULL;
1207 }
1208 goto done;
1209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001210 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001211 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001214 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001215 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001216 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001217 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001218}
1219
1220// statement: compound_stmt | simple_stmt
1221static asdl_seq*
1222statement_rule(Parser *p)
1223{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001224 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001225 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001226 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001227 return NULL;
1228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001229 asdl_seq* _res = NULL;
1230 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001231 { // compound_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001232 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001233 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001234 return NULL;
1235 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001236 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001237 stmt_ty a;
1238 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001239 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001240 )
1241 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001242 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001243 _res = _PyPegen_singleton_seq ( p , a );
1244 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001245 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001247 return NULL;
1248 }
1249 goto done;
1250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001251 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001252 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001254 }
1255 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001256 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001257 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001258 return NULL;
1259 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001260 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001261 asdl_seq* simple_stmt_var;
1262 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001263 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001264 )
1265 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001266 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001267 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001268 goto done;
1269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001270 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001271 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001274 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001275 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001276 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001277 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001278}
1279
1280// statement_newline: compound_stmt NEWLINE | simple_stmt | NEWLINE | $
1281static asdl_seq*
1282statement_newline_rule(Parser *p)
1283{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001284 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001287 return NULL;
1288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001289 asdl_seq* _res = NULL;
1290 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001291 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1292 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001293 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001294 return NULL;
1295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001296 int _start_lineno = p->tokens[_mark]->lineno;
1297 UNUSED(_start_lineno); // Only used by EXTRA macro
1298 int _start_col_offset = p->tokens[_mark]->col_offset;
1299 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001300 { // compound_stmt NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001301 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001302 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001303 return NULL;
1304 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001305 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001306 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001307 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001308 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001309 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001310 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001311 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001312 )
1313 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001314 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001315 _res = _PyPegen_singleton_seq ( p , a );
1316 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001317 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001318 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001319 return NULL;
1320 }
1321 goto done;
1322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001323 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001324 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001326 }
1327 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001329 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001330 return NULL;
1331 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001332 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001333 asdl_seq* simple_stmt_var;
1334 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001335 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001336 )
1337 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001338 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001339 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001340 goto done;
1341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001342 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001343 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001345 }
1346 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001347 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001348 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001349 return NULL;
1350 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001351 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001352 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001353 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001354 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001355 )
1356 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001357 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001358 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1359 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001360 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001361 return NULL;
1362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001363 int _end_lineno = _token->end_lineno;
1364 UNUSED(_end_lineno); // Only used by EXTRA macro
1365 int _end_col_offset = _token->end_col_offset;
1366 UNUSED(_end_col_offset); // Only used by EXTRA macro
1367 _res = _PyPegen_singleton_seq ( p , CHECK ( _Py_Pass ( EXTRA ) ) );
1368 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001369 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001370 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001371 return NULL;
1372 }
1373 goto done;
1374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001375 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001376 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001378 }
1379 { // $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001380 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001381 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001382 return NULL;
1383 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001384 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001385 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001386 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001387 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001388 )
1389 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001390 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001391 _res = _PyPegen_interactive_exit ( p );
1392 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001393 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001395 return NULL;
1396 }
1397 goto done;
1398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001399 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001400 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001403 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001404 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001405 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001406 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001407}
1408
1409// simple_stmt: small_stmt !';' NEWLINE | ';'.small_stmt+ ';'? NEWLINE
1410static asdl_seq*
1411simple_stmt_rule(Parser *p)
1412{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001413 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001414 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001415 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001416 return NULL;
1417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001418 asdl_seq* _res = NULL;
1419 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001420 { // small_stmt !';' NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001421 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001422 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001423 return NULL;
1424 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001425 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001426 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001427 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001428 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001429 (a = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001430 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001431 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001432 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001433 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001434 )
1435 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001436 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001437 _res = _PyPegen_singleton_seq ( p , a );
1438 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001439 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001441 return NULL;
1442 }
1443 goto done;
1444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001445 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001446 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001448 }
1449 { // ';'.small_stmt+ ';'? NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001450 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001451 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001452 return NULL;
1453 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001454 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001455 void *_opt_var;
1456 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001457 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001458 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001459 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001460 (a = _gather_12_rule(p)) // ';'.small_stmt+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001461 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001462 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001463 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001464 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001465 )
1466 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001467 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001468 _res = a;
1469 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001470 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001472 return NULL;
1473 }
1474 goto done;
1475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001476 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001477 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001480 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001481 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001482 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001483 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001484}
1485
1486// small_stmt:
1487// | assignment
1488// | star_expressions
1489// | &'return' return_stmt
1490// | &('import' | 'from') import_stmt
1491// | &'raise' raise_stmt
1492// | 'pass'
1493// | &'del' del_stmt
1494// | &'yield' yield_stmt
1495// | &'assert' assert_stmt
1496// | 'break'
1497// | 'continue'
1498// | &'global' global_stmt
1499// | &'nonlocal' nonlocal_stmt
1500static stmt_ty
1501small_stmt_rule(Parser *p)
1502{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001503 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001504 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001506 return NULL;
1507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001508 stmt_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001509 if (_PyPegen_is_memoized(p, small_stmt_type, &_res)) {
1510 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001511 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001513 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001514 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1515 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001516 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001517 return NULL;
1518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001519 int _start_lineno = p->tokens[_mark]->lineno;
1520 UNUSED(_start_lineno); // Only used by EXTRA macro
1521 int _start_col_offset = p->tokens[_mark]->col_offset;
1522 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001523 { // assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001524 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001525 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001526 return NULL;
1527 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001528 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03001529 stmt_ty assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001530 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001531 (assignment_var = assignment_rule(p)) // assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001532 )
1533 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001534 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001535 _res = assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001536 goto done;
1537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001538 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001539 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001541 }
1542 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001543 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001544 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001545 return NULL;
1546 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001547 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001548 expr_ty e;
1549 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001550 (e = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001551 )
1552 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001553 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001554 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1555 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001556 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001557 return NULL;
1558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001559 int _end_lineno = _token->end_lineno;
1560 UNUSED(_end_lineno); // Only used by EXTRA macro
1561 int _end_col_offset = _token->end_col_offset;
1562 UNUSED(_end_col_offset); // Only used by EXTRA macro
1563 _res = _Py_Expr ( e , EXTRA );
1564 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001565 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001566 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001567 return NULL;
1568 }
1569 goto done;
1570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001571 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001572 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001574 }
1575 { // &'return' return_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001578 return NULL;
1579 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001580 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001581 stmt_ty return_stmt_var;
1582 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001583 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001584 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001585 (return_stmt_var = return_stmt_rule(p)) // return_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001586 )
1587 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001588 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001589 _res = return_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001590 goto done;
1591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001592 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001593 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001595 }
1596 { // &('import' | 'from') import_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001598 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001599 return NULL;
1600 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001601 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001602 stmt_ty import_stmt_var;
1603 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001604 _PyPegen_lookahead(1, _tmp_14_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001605 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001606 (import_stmt_var = import_stmt_rule(p)) // import_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001607 )
1608 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001609 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001610 _res = import_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001611 goto done;
1612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001613 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001614 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001616 }
1617 { // &'raise' raise_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001619 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001620 return NULL;
1621 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001622 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001623 stmt_ty raise_stmt_var;
1624 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001625 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001626 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001627 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001628 )
1629 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001630 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001631 _res = raise_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001632 goto done;
1633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001634 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001635 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001637 }
1638 { // 'pass'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001639 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001640 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001641 return NULL;
1642 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001643 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001644 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001645 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001646 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001647 )
1648 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001649 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001650 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1651 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001652 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001653 return NULL;
1654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001655 int _end_lineno = _token->end_lineno;
1656 UNUSED(_end_lineno); // Only used by EXTRA macro
1657 int _end_col_offset = _token->end_col_offset;
1658 UNUSED(_end_col_offset); // Only used by EXTRA macro
1659 _res = _Py_Pass ( EXTRA );
1660 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001661 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001663 return NULL;
1664 }
1665 goto done;
1666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001667 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001668 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001670 }
1671 { // &'del' del_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001673 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001674 return NULL;
1675 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001676 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001677 stmt_ty del_stmt_var;
1678 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001679 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001680 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001681 (del_stmt_var = del_stmt_rule(p)) // del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001682 )
1683 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001684 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001685 _res = del_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001686 goto done;
1687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001688 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001689 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001691 }
1692 { // &'yield' yield_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001693 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001694 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001695 return NULL;
1696 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001697 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001698 stmt_ty yield_stmt_var;
1699 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001700 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001701 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001702 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001703 )
1704 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001705 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001706 _res = yield_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001707 goto done;
1708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001709 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001710 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001712 }
1713 { // &'assert' assert_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001715 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001716 return NULL;
1717 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001718 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001719 stmt_ty assert_stmt_var;
1720 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001721 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001722 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001723 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001724 )
1725 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001726 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001727 _res = assert_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001728 goto done;
1729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001730 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001731 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001733 }
1734 { // 'break'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001735 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001736 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001737 return NULL;
1738 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001739 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001740 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001741 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001742 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001743 )
1744 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001745 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001746 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1747 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001748 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001749 return NULL;
1750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001751 int _end_lineno = _token->end_lineno;
1752 UNUSED(_end_lineno); // Only used by EXTRA macro
1753 int _end_col_offset = _token->end_col_offset;
1754 UNUSED(_end_col_offset); // Only used by EXTRA macro
1755 _res = _Py_Break ( EXTRA );
1756 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001757 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001758 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001759 return NULL;
1760 }
1761 goto done;
1762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001763 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001764 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001766 }
1767 { // 'continue'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001768 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001769 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001770 return NULL;
1771 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001772 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001773 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001774 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001775 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001776 )
1777 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001778 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001779 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1780 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001782 return NULL;
1783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001784 int _end_lineno = _token->end_lineno;
1785 UNUSED(_end_lineno); // Only used by EXTRA macro
1786 int _end_col_offset = _token->end_col_offset;
1787 UNUSED(_end_col_offset); // Only used by EXTRA macro
1788 _res = _Py_Continue ( EXTRA );
1789 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001790 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001791 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001792 return NULL;
1793 }
1794 goto done;
1795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001796 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001797 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001799 }
1800 { // &'global' global_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001802 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001803 return NULL;
1804 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001805 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001806 stmt_ty global_stmt_var;
1807 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001808 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001809 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001810 (global_stmt_var = global_stmt_rule(p)) // global_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001811 )
1812 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001813 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001814 _res = global_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001815 goto done;
1816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001817 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001818 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001820 }
1821 { // &'nonlocal' nonlocal_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001822 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001823 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001824 return NULL;
1825 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001826 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001827 stmt_ty nonlocal_stmt_var;
1828 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001829 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001830 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001831 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001832 )
1833 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001834 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001835 _res = nonlocal_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001836 goto done;
1837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001838 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001839 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001842 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001843 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001844 _PyPegen_insert_memo(p, _mark, small_stmt_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001845 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001846 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001847}
1848
1849// compound_stmt:
1850// | &('def' | '@' | ASYNC) function_def
1851// | &'if' if_stmt
1852// | &('class' | '@') class_def
1853// | &('with' | ASYNC) with_stmt
1854// | &('for' | ASYNC) for_stmt
1855// | &'try' try_stmt
1856// | &'while' while_stmt
1857static stmt_ty
1858compound_stmt_rule(Parser *p)
1859{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001860 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001862 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001863 return NULL;
1864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001865 stmt_ty _res = NULL;
1866 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001867 { // &('def' | '@' | ASYNC) function_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001868 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001869 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001870 return NULL;
1871 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001872 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001873 stmt_ty function_def_var;
1874 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001875 _PyPegen_lookahead(1, _tmp_15_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001876 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001877 (function_def_var = function_def_rule(p)) // function_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001878 )
1879 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001880 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001881 _res = function_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001882 goto done;
1883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001884 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001885 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001887 }
1888 { // &'if' if_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001889 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001890 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001891 return NULL;
1892 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001893 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001894 stmt_ty if_stmt_var;
1895 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001896 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001897 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001898 (if_stmt_var = if_stmt_rule(p)) // if_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001899 )
1900 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001901 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001902 _res = if_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001903 goto done;
1904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001905 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001906 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001908 }
1909 { // &('class' | '@') class_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001911 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001912 return NULL;
1913 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001914 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001915 stmt_ty class_def_var;
1916 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001917 _PyPegen_lookahead(1, _tmp_16_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001918 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001919 (class_def_var = class_def_rule(p)) // class_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001920 )
1921 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001922 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001923 _res = class_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001924 goto done;
1925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001926 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001927 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001929 }
1930 { // &('with' | ASYNC) with_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001931 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001932 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001933 return NULL;
1934 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001935 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001936 stmt_ty with_stmt_var;
1937 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001938 _PyPegen_lookahead(1, _tmp_17_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001939 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001940 (with_stmt_var = with_stmt_rule(p)) // with_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001941 )
1942 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001943 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001944 _res = with_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001945 goto done;
1946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001947 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001948 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001950 }
1951 { // &('for' | ASYNC) for_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001952 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001953 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001954 return NULL;
1955 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001956 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001957 stmt_ty for_stmt_var;
1958 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001959 _PyPegen_lookahead(1, _tmp_18_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001960 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001961 (for_stmt_var = for_stmt_rule(p)) // for_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001962 )
1963 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001964 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001965 _res = for_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001966 goto done;
1967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001968 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001969 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001971 }
1972 { // &'try' try_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001973 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001974 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001975 return NULL;
1976 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001977 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001978 stmt_ty try_stmt_var;
1979 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001980 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001982 (try_stmt_var = try_stmt_rule(p)) // try_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001983 )
1984 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001985 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001986 _res = try_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001987 goto done;
1988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001989 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001990 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001992 }
1993 { // &'while' while_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001995 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001996 return NULL;
1997 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001998 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001999 stmt_ty while_stmt_var;
2000 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002001 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002002 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002003 (while_stmt_var = while_stmt_rule(p)) // while_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002004 )
2005 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002006 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002007 _res = while_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002008 goto done;
2009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002010 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002011 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002014 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002015 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002016 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002017 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002018}
2019
2020// assignment:
2021// | NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002022// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002023// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002024// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002025// | invalid_assignment
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03002026static stmt_ty
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002027assignment_rule(Parser *p)
2028{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002029 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002030 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002032 return NULL;
2033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002034 stmt_ty _res = NULL;
2035 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002036 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2037 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002038 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002039 return NULL;
2040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002041 int _start_lineno = p->tokens[_mark]->lineno;
2042 UNUSED(_start_lineno); // Only used by EXTRA macro
2043 int _start_col_offset = p->tokens[_mark]->col_offset;
2044 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002045 { // NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002046 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002047 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002048 return NULL;
2049 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002050 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002051 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002052 expr_ty a;
2053 expr_ty b;
2054 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002055 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002056 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002057 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002058 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002059 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002060 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002061 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002062 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002063 )
2064 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002065 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002066 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2067 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002068 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002069 return NULL;
2070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002071 int _end_lineno = _token->end_lineno;
2072 UNUSED(_end_lineno); // Only used by EXTRA macro
2073 int _end_col_offset = _token->end_col_offset;
2074 UNUSED(_end_col_offset); // Only used by EXTRA macro
2075 _res = CHECK_VERSION ( 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
2076 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002077 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002078 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002079 return NULL;
2080 }
2081 goto done;
2082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002083 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002084 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002086 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002087 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002088 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002089 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002090 return NULL;
2091 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002092 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002093 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002094 void *a;
2095 expr_ty b;
2096 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002097 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002098 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002099 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002100 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002101 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002102 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002103 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002104 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002105 )
2106 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002107 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2109 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002110 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002111 return NULL;
2112 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002113 int _end_lineno = _token->end_lineno;
2114 UNUSED(_end_lineno); // Only used by EXTRA macro
2115 int _end_col_offset = _token->end_col_offset;
2116 UNUSED(_end_col_offset); // Only used by EXTRA macro
2117 _res = CHECK_VERSION ( 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
2118 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002119 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002120 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002121 return NULL;
2122 }
2123 goto done;
2124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002125 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002126 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002128 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002129 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002130 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002131 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002132 return NULL;
2133 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002134 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002135 asdl_seq * a;
2136 void *b;
Guido van Rossumc001c092020-04-30 12:12:19 -07002137 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002138 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002139 (a = _loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002140 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002141 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -07002142 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002143 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2144 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002145 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002146 )
2147 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002148 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002149 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2150 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002151 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002152 return NULL;
2153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002154 int _end_lineno = _token->end_lineno;
2155 UNUSED(_end_lineno); // Only used by EXTRA macro
2156 int _end_col_offset = _token->end_col_offset;
2157 UNUSED(_end_col_offset); // Only used by EXTRA macro
2158 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2159 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002160 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002162 return NULL;
2163 }
2164 goto done;
2165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002166 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002167 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002169 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002170 { // single_target augassign ~ (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002171 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002172 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002173 return NULL;
2174 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002175 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2176 int _cut_var = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002177 expr_ty a;
2178 AugOperator* b;
2179 void *c;
2180 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002181 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002182 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002183 (b = augassign_rule(p)) // augassign
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002184 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002185 (_cut_var = 1)
2186 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002187 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002188 )
2189 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002190 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002191 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2192 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002193 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002194 return NULL;
2195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002196 int _end_lineno = _token->end_lineno;
2197 UNUSED(_end_lineno); // Only used by EXTRA macro
2198 int _end_col_offset = _token->end_col_offset;
2199 UNUSED(_end_col_offset); // Only used by EXTRA macro
2200 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2201 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002202 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002204 return NULL;
2205 }
2206 goto done;
2207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002208 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002209 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2211 if (_cut_var) {
2212 D(p->level--);
2213 return NULL;
2214 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002215 }
2216 { // invalid_assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002218 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002219 return NULL;
2220 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002221 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002222 void *invalid_assignment_var;
2223 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002224 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002225 )
2226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002227 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002228 _res = invalid_assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002229 goto done;
2230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002231 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002232 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002235 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002236 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002237 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002238 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002239}
2240
2241// augassign:
2242// | '+='
2243// | '-='
2244// | '*='
2245// | '@='
2246// | '/='
2247// | '%='
2248// | '&='
2249// | '|='
2250// | '^='
2251// | '<<='
2252// | '>>='
2253// | '**='
2254// | '//='
2255static AugOperator*
2256augassign_rule(Parser *p)
2257{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002258 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002260 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002261 return NULL;
2262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002263 AugOperator* _res = NULL;
2264 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002265 { // '+='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002266 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002267 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002268 return NULL;
2269 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002270 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002271 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002272 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002273 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002274 )
2275 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002276 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002277 _res = _PyPegen_augoperator ( p , Add );
2278 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002279 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002281 return NULL;
2282 }
2283 goto done;
2284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002285 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002286 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002288 }
2289 { // '-='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002290 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002291 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002292 return NULL;
2293 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002294 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002295 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002296 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002297 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002298 )
2299 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002300 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002301 _res = _PyPegen_augoperator ( p , Sub );
2302 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002303 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002304 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002305 return NULL;
2306 }
2307 goto done;
2308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002309 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002310 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002312 }
2313 { // '*='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002314 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002315 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002316 return NULL;
2317 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002318 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002319 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002320 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002321 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002322 )
2323 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002324 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002325 _res = _PyPegen_augoperator ( p , Mult );
2326 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002327 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002328 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002329 return NULL;
2330 }
2331 goto done;
2332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002333 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002334 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002336 }
2337 { // '@='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002339 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002340 return NULL;
2341 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002342 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002343 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002344 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002345 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002346 )
2347 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002348 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002349 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
2350 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002351 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002352 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002353 return NULL;
2354 }
2355 goto done;
2356 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002357 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002358 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002360 }
2361 { // '/='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002362 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002363 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002364 return NULL;
2365 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002366 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002367 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002368 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002369 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002370 )
2371 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002372 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002373 _res = _PyPegen_augoperator ( p , Div );
2374 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002375 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002377 return NULL;
2378 }
2379 goto done;
2380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002381 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002382 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002384 }
2385 { // '%='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002386 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002387 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002388 return NULL;
2389 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002390 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002391 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002392 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002393 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002394 )
2395 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002396 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002397 _res = _PyPegen_augoperator ( p , Mod );
2398 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002399 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002400 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002401 return NULL;
2402 }
2403 goto done;
2404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002405 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002406 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002408 }
2409 { // '&='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002410 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002411 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002412 return NULL;
2413 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002414 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002415 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002416 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002417 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002418 )
2419 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002420 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002421 _res = _PyPegen_augoperator ( p , BitAnd );
2422 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002423 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002425 return NULL;
2426 }
2427 goto done;
2428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002429 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002430 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002432 }
2433 { // '|='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002435 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002436 return NULL;
2437 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002438 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002439 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002440 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002441 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002442 )
2443 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002444 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002445 _res = _PyPegen_augoperator ( p , BitOr );
2446 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002447 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002448 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002449 return NULL;
2450 }
2451 goto done;
2452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002453 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002454 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002456 }
2457 { // '^='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002458 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002459 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002460 return NULL;
2461 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002462 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002463 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002464 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002465 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002466 )
2467 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002468 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002469 _res = _PyPegen_augoperator ( p , BitXor );
2470 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002471 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002472 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002473 return NULL;
2474 }
2475 goto done;
2476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002477 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002478 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002480 }
2481 { // '<<='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002482 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002483 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002484 return NULL;
2485 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002486 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002487 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002488 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002489 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002490 )
2491 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002492 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002493 _res = _PyPegen_augoperator ( p , LShift );
2494 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002495 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002496 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002497 return NULL;
2498 }
2499 goto done;
2500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002501 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002502 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002504 }
2505 { // '>>='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002506 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002507 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002508 return NULL;
2509 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002510 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002511 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002512 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002513 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002514 )
2515 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002516 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002517 _res = _PyPegen_augoperator ( p , RShift );
2518 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002519 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002521 return NULL;
2522 }
2523 goto done;
2524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002525 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002526 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002528 }
2529 { // '**='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002532 return NULL;
2533 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002534 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002535 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002536 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002537 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002538 )
2539 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002540 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002541 _res = _PyPegen_augoperator ( p , Pow );
2542 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002543 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002545 return NULL;
2546 }
2547 goto done;
2548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002549 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002550 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002552 }
2553 { // '//='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002554 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002555 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002556 return NULL;
2557 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002558 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002559 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002560 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002561 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002562 )
2563 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002564 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002565 _res = _PyPegen_augoperator ( p , FloorDiv );
2566 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002567 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002568 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002569 return NULL;
2570 }
2571 goto done;
2572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002573 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002574 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002577 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002578 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002579 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002580 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002581}
2582
2583// global_stmt: 'global' ','.NAME+
2584static stmt_ty
2585global_stmt_rule(Parser *p)
2586{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002587 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002588 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002590 return NULL;
2591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002592 stmt_ty _res = NULL;
2593 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002594 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2595 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002596 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002597 return NULL;
2598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002599 int _start_lineno = p->tokens[_mark]->lineno;
2600 UNUSED(_start_lineno); // Only used by EXTRA macro
2601 int _start_col_offset = p->tokens[_mark]->col_offset;
2602 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002603 { // 'global' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002604 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002605 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002606 return NULL;
2607 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002608 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002609 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002610 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002611 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002612 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002613 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002614 (a = _gather_25_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002615 )
2616 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002617 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002618 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2619 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002620 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002621 return NULL;
2622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002623 int _end_lineno = _token->end_lineno;
2624 UNUSED(_end_lineno); // Only used by EXTRA macro
2625 int _end_col_offset = _token->end_col_offset;
2626 UNUSED(_end_col_offset); // Only used by EXTRA macro
2627 _res = _Py_Global ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2628 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002629 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002631 return NULL;
2632 }
2633 goto done;
2634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002635 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002636 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002639 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002640 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002641 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002642 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002643}
2644
2645// nonlocal_stmt: 'nonlocal' ','.NAME+
2646static stmt_ty
2647nonlocal_stmt_rule(Parser *p)
2648{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002649 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002651 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002652 return NULL;
2653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002654 stmt_ty _res = NULL;
2655 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002656 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2657 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002658 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002659 return NULL;
2660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002661 int _start_lineno = p->tokens[_mark]->lineno;
2662 UNUSED(_start_lineno); // Only used by EXTRA macro
2663 int _start_col_offset = p->tokens[_mark]->col_offset;
2664 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002665 { // 'nonlocal' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002666 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002667 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002668 return NULL;
2669 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002670 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002671 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002672 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002673 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002674 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002675 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002676 (a = _gather_27_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002677 )
2678 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002679 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002680 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2681 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002682 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002683 return NULL;
2684 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002685 int _end_lineno = _token->end_lineno;
2686 UNUSED(_end_lineno); // Only used by EXTRA macro
2687 int _end_col_offset = _token->end_col_offset;
2688 UNUSED(_end_col_offset); // Only used by EXTRA macro
2689 _res = _Py_Nonlocal ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2690 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002691 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002692 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002693 return NULL;
2694 }
2695 goto done;
2696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002697 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002698 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002701 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002702 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002703 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002704 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002705}
2706
2707// yield_stmt: yield_expr
2708static stmt_ty
2709yield_stmt_rule(Parser *p)
2710{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002711 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002712 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002713 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002714 return NULL;
2715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002716 stmt_ty _res = NULL;
2717 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002718 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2719 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002720 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002721 return NULL;
2722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002723 int _start_lineno = p->tokens[_mark]->lineno;
2724 UNUSED(_start_lineno); // Only used by EXTRA macro
2725 int _start_col_offset = p->tokens[_mark]->col_offset;
2726 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002727 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002728 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002729 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002730 return NULL;
2731 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002732 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002733 expr_ty y;
2734 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002735 (y = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002736 )
2737 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002738 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002739 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2740 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002741 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002742 return NULL;
2743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002744 int _end_lineno = _token->end_lineno;
2745 UNUSED(_end_lineno); // Only used by EXTRA macro
2746 int _end_col_offset = _token->end_col_offset;
2747 UNUSED(_end_col_offset); // Only used by EXTRA macro
2748 _res = _Py_Expr ( y , EXTRA );
2749 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002750 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002751 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002752 return NULL;
2753 }
2754 goto done;
2755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002756 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002757 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002760 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002761 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002762 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002763 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002764}
2765
2766// assert_stmt: 'assert' expression [',' expression]
2767static stmt_ty
2768assert_stmt_rule(Parser *p)
2769{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002770 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002771 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002772 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002773 return NULL;
2774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002775 stmt_ty _res = NULL;
2776 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002777 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2778 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002780 return NULL;
2781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002782 int _start_lineno = p->tokens[_mark]->lineno;
2783 UNUSED(_start_lineno); // Only used by EXTRA macro
2784 int _start_col_offset = p->tokens[_mark]->col_offset;
2785 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002786 { // 'assert' expression [',' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002787 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002788 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002789 return NULL;
2790 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002791 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002792 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002793 expr_ty a;
2794 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002795 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002796 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002797 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002798 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002799 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002800 (b = _tmp_29_rule(p), 1) // [',' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002801 )
2802 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002803 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002804 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2805 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002806 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002807 return NULL;
2808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002809 int _end_lineno = _token->end_lineno;
2810 UNUSED(_end_lineno); // Only used by EXTRA macro
2811 int _end_col_offset = _token->end_col_offset;
2812 UNUSED(_end_col_offset); // Only used by EXTRA macro
2813 _res = _Py_Assert ( a , b , EXTRA );
2814 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002815 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002816 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002817 return NULL;
2818 }
2819 goto done;
2820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002821 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002822 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002825 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002826 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002827 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002828 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002829}
2830
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002831// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002832static stmt_ty
2833del_stmt_rule(Parser *p)
2834{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002835 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002836 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002837 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002838 return NULL;
2839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002840 stmt_ty _res = NULL;
2841 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002842 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2843 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002844 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002845 return NULL;
2846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002847 int _start_lineno = p->tokens[_mark]->lineno;
2848 UNUSED(_start_lineno); // Only used by EXTRA macro
2849 int _start_col_offset = p->tokens[_mark]->col_offset;
2850 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002851 { // 'del' del_targets &(';' | NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002852 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002853 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002854 return NULL;
2855 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002856 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002857 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002858 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002859 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002860 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002861 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002862 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002863 &&
2864 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002865 )
2866 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002867 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2869 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002871 return NULL;
2872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002873 int _end_lineno = _token->end_lineno;
2874 UNUSED(_end_lineno); // Only used by EXTRA macro
2875 int _end_col_offset = _token->end_col_offset;
2876 UNUSED(_end_col_offset); // Only used by EXTRA macro
2877 _res = _Py_Delete ( a , EXTRA );
2878 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002879 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002880 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002881 return NULL;
2882 }
2883 goto done;
2884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002885 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002886 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2888 }
2889 { // invalid_del_stmt
2890 if (p->error_indicator) {
2891 D(p->level--);
2892 return NULL;
2893 }
2894 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2895 void *invalid_del_stmt_var;
2896 if (
2897 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2898 )
2899 {
2900 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2901 _res = invalid_del_stmt_var;
2902 goto done;
2903 }
2904 p->mark = _mark;
2905 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002908 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002909 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002910 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002911 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002912}
2913
2914// import_stmt: import_name | import_from
2915static stmt_ty
2916import_stmt_rule(Parser *p)
2917{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002918 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002919 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002921 return NULL;
2922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002923 stmt_ty _res = NULL;
2924 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002925 { // import_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002926 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002927 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002928 return NULL;
2929 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002930 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002931 stmt_ty import_name_var;
2932 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002933 (import_name_var = import_name_rule(p)) // import_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002934 )
2935 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002936 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002937 _res = import_name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002938 goto done;
2939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002940 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002941 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002943 }
2944 { // import_from
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002945 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002946 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002947 return NULL;
2948 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002949 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002950 stmt_ty import_from_var;
2951 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002952 (import_from_var = import_from_rule(p)) // import_from
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002953 )
2954 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002955 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002956 _res = import_from_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002957 goto done;
2958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002959 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002960 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002963 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002964 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002965 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002966 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002967}
2968
2969// import_name: 'import' dotted_as_names
2970static stmt_ty
2971import_name_rule(Parser *p)
2972{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002973 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002975 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002976 return NULL;
2977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002978 stmt_ty _res = NULL;
2979 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002980 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2981 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002983 return NULL;
2984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002985 int _start_lineno = p->tokens[_mark]->lineno;
2986 UNUSED(_start_lineno); // Only used by EXTRA macro
2987 int _start_col_offset = p->tokens[_mark]->col_offset;
2988 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002989 { // 'import' dotted_as_names
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002990 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002991 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002992 return NULL;
2993 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002994 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002995 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002996 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002997 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002998 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002999 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003000 (a = dotted_as_names_rule(p)) // dotted_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003001 )
3002 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003003 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003004 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3005 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003006 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003007 return NULL;
3008 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003009 int _end_lineno = _token->end_lineno;
3010 UNUSED(_end_lineno); // Only used by EXTRA macro
3011 int _end_col_offset = _token->end_col_offset;
3012 UNUSED(_end_col_offset); // Only used by EXTRA macro
3013 _res = _Py_Import ( a , EXTRA );
3014 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003015 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003016 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003017 return NULL;
3018 }
3019 goto done;
3020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003021 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003022 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003025 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003026 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003027 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003028 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003029}
3030
3031// import_from:
3032// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3033// | 'from' (('.' | '...'))+ 'import' import_from_targets
3034static stmt_ty
3035import_from_rule(Parser *p)
3036{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003037 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003038 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003039 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003040 return NULL;
3041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003042 stmt_ty _res = NULL;
3043 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003044 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3045 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003046 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003047 return NULL;
3048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003049 int _start_lineno = p->tokens[_mark]->lineno;
3050 UNUSED(_start_lineno); // Only used by EXTRA macro
3051 int _start_col_offset = p->tokens[_mark]->col_offset;
3052 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003053 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003054 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003055 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003056 return NULL;
3057 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003058 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003059 Token * _keyword;
3060 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003061 asdl_seq * a;
3062 expr_ty b;
3063 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003064 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003065 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003066 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003067 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003068 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003069 (b = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003070 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003071 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003072 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003073 (c = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003074 )
3075 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003076 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003077 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3078 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003079 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003080 return NULL;
3081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003082 int _end_lineno = _token->end_lineno;
3083 UNUSED(_end_lineno); // Only used by EXTRA macro
3084 int _end_col_offset = _token->end_col_offset;
3085 UNUSED(_end_col_offset); // Only used by EXTRA macro
3086 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3087 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003088 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003089 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003090 return NULL;
3091 }
3092 goto done;
3093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003094 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003095 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003097 }
3098 { // 'from' (('.' | '...'))+ 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003100 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003101 return NULL;
3102 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003103 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003104 Token * _keyword;
3105 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003106 asdl_seq * a;
3107 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003108 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003109 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003110 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003111 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003112 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003113 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003114 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003115 (b = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003116 )
3117 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003118 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003119 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3120 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003122 return NULL;
3123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003124 int _end_lineno = _token->end_lineno;
3125 UNUSED(_end_lineno); // Only used by EXTRA macro
3126 int _end_col_offset = _token->end_col_offset;
3127 UNUSED(_end_col_offset); // Only used by EXTRA macro
3128 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3129 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003130 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003132 return NULL;
3133 }
3134 goto done;
3135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003136 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003137 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003140 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003141 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003142 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003143 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003144}
3145
Pablo Galindo275d7e12020-05-21 22:04:54 +01003146// import_from_targets:
3147// | '(' import_from_as_names ','? ')'
3148// | import_from_as_names !','
3149// | '*'
3150// | invalid_import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003151static asdl_seq*
3152import_from_targets_rule(Parser *p)
3153{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003154 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003156 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003157 return NULL;
3158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003159 asdl_seq* _res = NULL;
3160 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003161 { // '(' import_from_as_names ','? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003162 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003163 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003164 return NULL;
3165 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003166 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003167 Token * _literal;
3168 Token * _literal_1;
3169 void *_opt_var;
3170 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003171 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003172 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003173 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003174 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003175 (a = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003176 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003177 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003178 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003179 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003180 )
3181 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003182 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003183 _res = a;
3184 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003185 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003186 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003187 return NULL;
3188 }
3189 goto done;
3190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003191 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003192 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003194 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003195 { // import_from_as_names !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003196 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003197 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003198 return NULL;
3199 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003200 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003201 asdl_seq* import_from_as_names_var;
3202 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003203 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindo275d7e12020-05-21 22:04:54 +01003204 &&
3205 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003206 )
3207 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003208 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003209 _res = import_from_as_names_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003210 goto done;
3211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003212 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003213 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003215 }
3216 { // '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003218 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003219 return NULL;
3220 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003221 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003222 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003223 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003224 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003225 )
3226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003227 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003228 _res = _PyPegen_singleton_seq ( p , CHECK ( _PyPegen_alias_for_star ( p ) ) );
3229 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003230 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003232 return NULL;
3233 }
3234 goto done;
3235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003236 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003237 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003239 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003240 { // invalid_import_from_targets
3241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003242 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +01003243 return NULL;
3244 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003245 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003246 void *invalid_import_from_targets_var;
3247 if (
3248 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3249 )
3250 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003251 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003252 _res = invalid_import_from_targets_var;
3253 goto done;
3254 }
3255 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003256 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003258 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003259 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003260 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003261 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003262 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003263}
3264
3265// import_from_as_names: ','.import_from_as_name+
3266static asdl_seq*
3267import_from_as_names_rule(Parser *p)
3268{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003269 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003270 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003272 return NULL;
3273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003274 asdl_seq* _res = NULL;
3275 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003276 { // ','.import_from_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003277 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003278 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003279 return NULL;
3280 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003281 D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003282 asdl_seq * a;
3283 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003284 (a = _gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003285 )
3286 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003287 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003288 _res = a;
3289 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003292 return NULL;
3293 }
3294 goto done;
3295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003296 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003297 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003300 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003301 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003302 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003303 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003304}
3305
3306// import_from_as_name: NAME ['as' NAME]
3307static alias_ty
3308import_from_as_name_rule(Parser *p)
3309{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003310 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003312 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003313 return NULL;
3314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003315 alias_ty _res = NULL;
3316 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003317 { // NAME ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003320 return NULL;
3321 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003322 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003323 expr_ty a;
3324 void *b;
3325 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003326 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003327 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003328 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003329 )
3330 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003331 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003332 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3333 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003334 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003335 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003336 return NULL;
3337 }
3338 goto done;
3339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003340 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003341 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003344 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003345 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003346 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003347 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003348}
3349
3350// dotted_as_names: ','.dotted_as_name+
3351static asdl_seq*
3352dotted_as_names_rule(Parser *p)
3353{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003354 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003355 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003356 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003357 return NULL;
3358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003359 asdl_seq* _res = NULL;
3360 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003361 { // ','.dotted_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003362 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003363 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003364 return NULL;
3365 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003366 D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003367 asdl_seq * a;
3368 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003369 (a = _gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003370 )
3371 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003372 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003373 _res = a;
3374 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003375 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003377 return NULL;
3378 }
3379 goto done;
3380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003381 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003382 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003385 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003386 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003387 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003388 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003389}
3390
3391// dotted_as_name: dotted_name ['as' NAME]
3392static alias_ty
3393dotted_as_name_rule(Parser *p)
3394{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003395 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003396 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003397 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003398 return NULL;
3399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003400 alias_ty _res = NULL;
3401 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003402 { // dotted_name ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003405 return NULL;
3406 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003407 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003408 expr_ty a;
3409 void *b;
3410 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003411 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003412 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003413 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003414 )
3415 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003416 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003417 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3418 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003419 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003420 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003421 return NULL;
3422 }
3423 goto done;
3424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003425 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003426 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003429 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003430 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003431 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003432 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003433}
3434
3435// Left-recursive
3436// dotted_name: dotted_name '.' NAME | NAME
3437static expr_ty dotted_name_raw(Parser *);
3438static expr_ty
3439dotted_name_rule(Parser *p)
3440{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003441 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003442 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003443 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3444 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003445 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003447 int _mark = p->mark;
3448 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003449 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003450 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003451 if (tmpvar_0) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003452 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003453 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003454 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003455 p->mark = _mark;
3456 void *_raw = dotted_name_raw(p);
3457 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003458 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003459 _resmark = p->mark;
3460 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003461 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003462 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003463 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003464 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003465}
3466static expr_ty
3467dotted_name_raw(Parser *p)
3468{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003469 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003470 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003472 return NULL;
3473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003474 expr_ty _res = NULL;
3475 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003476 { // dotted_name '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003477 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003478 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003479 return NULL;
3480 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003481 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003482 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003483 expr_ty a;
3484 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003485 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003486 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003487 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003488 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003489 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003490 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003491 )
3492 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003493 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003494 _res = _PyPegen_join_names_with_dot ( p , a , b );
3495 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003496 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003497 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003498 return NULL;
3499 }
3500 goto done;
3501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003502 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003503 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003505 }
3506 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003508 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003509 return NULL;
3510 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003511 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003512 expr_ty name_var;
3513 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003514 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003515 )
3516 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003517 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003518 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003519 goto done;
3520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003521 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003522 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003525 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003526 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003527 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003528 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003529}
3530
3531// if_stmt:
3532// | 'if' named_expression ':' block elif_stmt
3533// | 'if' named_expression ':' block else_block?
3534static stmt_ty
3535if_stmt_rule(Parser *p)
3536{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003537 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003538 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003539 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003540 return NULL;
3541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003542 stmt_ty _res = NULL;
3543 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003544 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3545 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003546 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003547 return NULL;
3548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003549 int _start_lineno = p->tokens[_mark]->lineno;
3550 UNUSED(_start_lineno); // Only used by EXTRA macro
3551 int _start_col_offset = p->tokens[_mark]->col_offset;
3552 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003553 { // 'if' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003554 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003555 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003556 return NULL;
3557 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003558 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003559 Token * _keyword;
3560 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003561 expr_ty a;
3562 asdl_seq* b;
3563 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003564 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003565 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003566 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003567 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003568 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003569 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003570 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003571 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003572 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003573 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003574 )
3575 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003576 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003577 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3578 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003579 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003580 return NULL;
3581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003582 int _end_lineno = _token->end_lineno;
3583 UNUSED(_end_lineno); // Only used by EXTRA macro
3584 int _end_col_offset = _token->end_col_offset;
3585 UNUSED(_end_col_offset); // Only used by EXTRA macro
3586 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3587 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003588 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003590 return NULL;
3591 }
3592 goto done;
3593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003594 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003595 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003597 }
3598 { // 'if' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003600 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003601 return NULL;
3602 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003603 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003604 Token * _keyword;
3605 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003606 expr_ty a;
3607 asdl_seq* b;
3608 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003609 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003610 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003611 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003612 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003613 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003614 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003615 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003616 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003617 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003618 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003619 )
3620 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003621 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003622 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3623 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003624 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003625 return NULL;
3626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003627 int _end_lineno = _token->end_lineno;
3628 UNUSED(_end_lineno); // Only used by EXTRA macro
3629 int _end_col_offset = _token->end_col_offset;
3630 UNUSED(_end_col_offset); // Only used by EXTRA macro
3631 _res = _Py_If ( a , b , c , EXTRA );
3632 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003633 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003634 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003635 return NULL;
3636 }
3637 goto done;
3638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003639 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003640 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003643 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003644 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003645 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003646 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003647}
3648
3649// elif_stmt:
3650// | 'elif' named_expression ':' block elif_stmt
3651// | 'elif' named_expression ':' block else_block?
3652static stmt_ty
3653elif_stmt_rule(Parser *p)
3654{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003655 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003657 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003658 return NULL;
3659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003660 stmt_ty _res = NULL;
3661 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003662 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3663 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003665 return NULL;
3666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003667 int _start_lineno = p->tokens[_mark]->lineno;
3668 UNUSED(_start_lineno); // Only used by EXTRA macro
3669 int _start_col_offset = p->tokens[_mark]->col_offset;
3670 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003671 { // 'elif' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003673 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003674 return NULL;
3675 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003676 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003677 Token * _keyword;
3678 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003679 expr_ty a;
3680 asdl_seq* b;
3681 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003682 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003683 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003684 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003685 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003686 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003687 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003688 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003689 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003690 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003691 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003692 )
3693 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003694 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003695 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3696 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003698 return NULL;
3699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003700 int _end_lineno = _token->end_lineno;
3701 UNUSED(_end_lineno); // Only used by EXTRA macro
3702 int _end_col_offset = _token->end_col_offset;
3703 UNUSED(_end_col_offset); // Only used by EXTRA macro
3704 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3705 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003706 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003707 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003708 return NULL;
3709 }
3710 goto done;
3711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003712 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003713 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003715 }
3716 { // 'elif' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003717 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003718 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003719 return NULL;
3720 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003721 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003722 Token * _keyword;
3723 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003724 expr_ty a;
3725 asdl_seq* b;
3726 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003727 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003728 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003729 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003730 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003731 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003732 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003733 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003734 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003735 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003736 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003737 )
3738 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003739 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3741 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003742 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003743 return NULL;
3744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003745 int _end_lineno = _token->end_lineno;
3746 UNUSED(_end_lineno); // Only used by EXTRA macro
3747 int _end_col_offset = _token->end_col_offset;
3748 UNUSED(_end_col_offset); // Only used by EXTRA macro
3749 _res = _Py_If ( a , b , c , EXTRA );
3750 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003751 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003752 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003753 return NULL;
3754 }
3755 goto done;
3756 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003757 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003758 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003761 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003762 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003763 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003764 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003765}
3766
3767// else_block: 'else' ':' block
3768static asdl_seq*
3769else_block_rule(Parser *p)
3770{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003771 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003773 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003774 return NULL;
3775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003776 asdl_seq* _res = NULL;
3777 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003778 { // 'else' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003779 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003780 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003781 return NULL;
3782 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003783 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003784 Token * _keyword;
3785 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003786 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003787 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003788 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003789 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003790 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003791 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003792 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003793 )
3794 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003795 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003796 _res = b;
3797 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003798 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003799 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003800 return NULL;
3801 }
3802 goto done;
3803 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003804 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003805 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003808 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003809 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003810 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003811 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003812}
3813
3814// while_stmt: 'while' named_expression ':' block else_block?
3815static stmt_ty
3816while_stmt_rule(Parser *p)
3817{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003818 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003820 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003821 return NULL;
3822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003823 stmt_ty _res = NULL;
3824 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003825 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3826 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003827 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003828 return NULL;
3829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003830 int _start_lineno = p->tokens[_mark]->lineno;
3831 UNUSED(_start_lineno); // Only used by EXTRA macro
3832 int _start_col_offset = p->tokens[_mark]->col_offset;
3833 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003834 { // 'while' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003835 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003836 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003837 return NULL;
3838 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003839 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003840 Token * _keyword;
3841 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003842 expr_ty a;
3843 asdl_seq* b;
3844 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003845 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003846 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003847 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003848 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003849 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003850 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003851 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003852 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003853 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003854 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003855 )
3856 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003857 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003858 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3859 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003860 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003861 return NULL;
3862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003863 int _end_lineno = _token->end_lineno;
3864 UNUSED(_end_lineno); // Only used by EXTRA macro
3865 int _end_col_offset = _token->end_col_offset;
3866 UNUSED(_end_col_offset); // Only used by EXTRA macro
3867 _res = _Py_While ( a , b , c , EXTRA );
3868 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003869 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003871 return NULL;
3872 }
3873 goto done;
3874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003875 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003876 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003879 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003880 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003881 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003882 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003883}
3884
Guido van Rossumc001c092020-04-30 12:12:19 -07003885// for_stmt:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003886// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3887// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3888// | invalid_for_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003889static stmt_ty
3890for_stmt_rule(Parser *p)
3891{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003892 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003893 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003894 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003895 return NULL;
3896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003897 stmt_ty _res = NULL;
3898 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003899 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3900 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003901 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003902 return NULL;
3903 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003904 int _start_lineno = p->tokens[_mark]->lineno;
3905 UNUSED(_start_lineno); // Only used by EXTRA macro
3906 int _start_col_offset = p->tokens[_mark]->col_offset;
3907 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003908 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003909 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003910 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003911 return NULL;
3912 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003913 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?"));
3914 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003915 Token * _keyword;
3916 Token * _keyword_1;
3917 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003918 asdl_seq* b;
3919 void *el;
3920 expr_ty ex;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003921 expr_ty t;
Guido van Rossumc001c092020-04-30 12:12:19 -07003922 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003923 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003924 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003925 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003926 (t = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003927 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003928 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003929 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003930 (_cut_var = 1)
3931 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003932 (ex = star_expressions_rule(p)) // star_expressions
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003933 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003934 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003935 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003936 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003937 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003938 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003939 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003940 (el = else_block_rule(p), 1) // else_block?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003941 )
3942 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003943 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 Galindoac7a92c2020-05-10 05:34:50 +01003944 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3945 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003946 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003947 return NULL;
3948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003949 int _end_lineno = _token->end_lineno;
3950 UNUSED(_end_lineno); // Only used by EXTRA macro
3951 int _end_col_offset = _token->end_col_offset;
3952 UNUSED(_end_col_offset); // Only used by EXTRA macro
3953 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3954 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003955 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003956 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003957 return NULL;
3958 }
3959 goto done;
3960 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003961 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003962 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
3964 if (_cut_var) {
3965 D(p->level--);
3966 return NULL;
3967 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003968 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003969 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003970 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003971 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003972 return NULL;
3973 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003974 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?"));
3975 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003976 Token * _keyword;
3977 Token * _keyword_1;
3978 Token * _literal;
Pablo Galindob796b3f2020-05-01 12:32:26 +01003979 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003980 asdl_seq* b;
3981 void *el;
3982 expr_ty ex;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003983 expr_ty t;
3984 void *tc;
3985 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003986 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003987 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003988 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003989 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003990 (t = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003991 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003992 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003993 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003994 (_cut_var = 1)
3995 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003996 (ex = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003997 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003998 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003999 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004000 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004001 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004002 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004003 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004004 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004005 )
4006 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004007 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 Galindoac7a92c2020-05-10 05:34:50 +01004008 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4009 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004010 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004011 return NULL;
4012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004013 int _end_lineno = _token->end_lineno;
4014 UNUSED(_end_lineno); // Only used by EXTRA macro
4015 int _end_col_offset = _token->end_col_offset;
4016 UNUSED(_end_col_offset); // Only used by EXTRA macro
4017 _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4018 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004019 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004020 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004021 return NULL;
4022 }
4023 goto done;
4024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004025 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004026 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
4028 if (_cut_var) {
4029 D(p->level--);
4030 return NULL;
4031 }
4032 }
4033 { // invalid_for_target
4034 if (p->error_indicator) {
4035 D(p->level--);
4036 return NULL;
4037 }
4038 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4039 void *invalid_for_target_var;
4040 if (
4041 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4042 )
4043 {
4044 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4045 _res = invalid_for_target_var;
4046 goto done;
4047 }
4048 p->mark = _mark;
4049 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004052 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004053 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004054 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004055 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004056}
4057
4058// with_stmt:
Pablo Galindo99db2a12020-05-06 22:54:34 +01004059// | 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004060// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo99db2a12020-05-06 22:54:34 +01004061// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004062// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004063static stmt_ty
4064with_stmt_rule(Parser *p)
4065{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004066 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004068 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004069 return NULL;
4070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004071 stmt_ty _res = NULL;
4072 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004073 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4074 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004075 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004076 return NULL;
4077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004078 int _start_lineno = p->tokens[_mark]->lineno;
4079 UNUSED(_start_lineno); // Only used by EXTRA macro
4080 int _start_col_offset = p->tokens[_mark]->col_offset;
4081 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo99db2a12020-05-06 22:54:34 +01004082 { // 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004083 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004084 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004085 return NULL;
4086 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004087 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004088 Token * _keyword;
4089 Token * _literal;
4090 Token * _literal_1;
4091 Token * _literal_2;
4092 void *_opt_var;
4093 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004094 asdl_seq * a;
4095 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004096 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004097 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004098 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004099 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004100 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004101 (a = _gather_39_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004102 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004103 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004104 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004105 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004106 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004107 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004108 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004109 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004110 )
4111 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004112 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004113 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4114 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004115 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004116 return NULL;
4117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004118 int _end_lineno = _token->end_lineno;
4119 UNUSED(_end_lineno); // Only used by EXTRA macro
4120 int _end_col_offset = _token->end_col_offset;
4121 UNUSED(_end_col_offset); // Only used by EXTRA macro
4122 _res = _Py_With ( a , b , NULL , EXTRA );
4123 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004124 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004126 return NULL;
4127 }
4128 goto done;
4129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004130 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004131 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004133 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004134 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004136 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004137 return NULL;
4138 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004139 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004140 Token * _keyword;
4141 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004142 asdl_seq * a;
4143 asdl_seq* b;
Guido van Rossumc001c092020-04-30 12:12:19 -07004144 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004145 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004146 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004147 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004148 (a = _gather_41_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004149 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004150 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004151 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004152 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004153 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004154 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004155 )
4156 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004157 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4159 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004160 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004161 return NULL;
4162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004163 int _end_lineno = _token->end_lineno;
4164 UNUSED(_end_lineno); // Only used by EXTRA macro
4165 int _end_col_offset = _token->end_col_offset;
4166 UNUSED(_end_col_offset); // Only used by EXTRA macro
4167 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4168 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004169 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004170 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004171 return NULL;
4172 }
4173 goto done;
4174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004175 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004176 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004178 }
Pablo Galindo99db2a12020-05-06 22:54:34 +01004179 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004181 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004182 return NULL;
4183 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004184 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004185 Token * _keyword;
4186 Token * _literal;
4187 Token * _literal_1;
4188 Token * _literal_2;
4189 void *_opt_var;
4190 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004191 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004192 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004193 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004194 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004195 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004196 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004197 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004198 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004199 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004200 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004201 (a = _gather_43_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004202 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004203 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004204 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004205 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004206 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004207 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004208 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004209 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004210 )
4211 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004212 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004213 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4214 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004215 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004216 return NULL;
4217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004218 int _end_lineno = _token->end_lineno;
4219 UNUSED(_end_lineno); // Only used by EXTRA macro
4220 int _end_col_offset = _token->end_col_offset;
4221 UNUSED(_end_col_offset); // Only used by EXTRA macro
4222 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
4223 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004224 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004225 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004226 return NULL;
4227 }
4228 goto done;
4229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004230 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004231 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004233 }
4234 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004235 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004236 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004237 return NULL;
4238 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004239 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004240 Token * _keyword;
4241 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004242 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004243 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004244 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004245 void *tc;
4246 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004247 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004248 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004249 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004250 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004251 (a = _gather_45_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004252 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004253 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004254 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004255 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004256 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004257 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004258 )
4259 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004260 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004261 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4262 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004263 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004264 return NULL;
4265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004266 int _end_lineno = _token->end_lineno;
4267 UNUSED(_end_lineno); // Only used by EXTRA macro
4268 int _end_col_offset = _token->end_col_offset;
4269 UNUSED(_end_col_offset); // Only used by EXTRA macro
4270 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4271 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004272 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004273 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004274 return NULL;
4275 }
4276 goto done;
4277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004278 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004279 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004282 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004283 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004284 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004285 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004286}
4287
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004288// with_item: expression 'as' target &(',' | ')' | ':') | invalid_with_item | expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004289static withitem_ty
4290with_item_rule(Parser *p)
4291{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004292 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004293 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004294 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004295 return NULL;
4296 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004297 withitem_ty _res = NULL;
4298 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004299 { // expression 'as' target &(',' | ')' | ':')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004300 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004301 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004302 return NULL;
4303 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004304 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4305 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004306 expr_ty e;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004307 expr_ty t;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004308 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004309 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004310 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004311 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4312 &&
4313 (t = target_rule(p)) // target
4314 &&
4315 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004316 )
4317 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004318 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4319 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004320 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004321 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004322 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004323 return NULL;
4324 }
4325 goto done;
4326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004327 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004328 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4330 }
4331 { // invalid_with_item
4332 if (p->error_indicator) {
4333 D(p->level--);
4334 return NULL;
4335 }
4336 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4337 void *invalid_with_item_var;
4338 if (
4339 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4340 )
4341 {
4342 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4343 _res = invalid_with_item_var;
4344 goto done;
4345 }
4346 p->mark = _mark;
4347 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4349 }
4350 { // expression
4351 if (p->error_indicator) {
4352 D(p->level--);
4353 return NULL;
4354 }
4355 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4356 expr_ty e;
4357 if (
4358 (e = expression_rule(p)) // expression
4359 )
4360 {
4361 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4362 _res = _Py_withitem ( e , NULL , p -> arena );
4363 if (_res == NULL && PyErr_Occurred()) {
4364 p->error_indicator = 1;
4365 D(p->level--);
4366 return NULL;
4367 }
4368 goto done;
4369 }
4370 p->mark = _mark;
4371 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004374 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004375 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004376 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004377 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004378}
4379
4380// try_stmt:
4381// | 'try' ':' block finally_block
4382// | 'try' ':' block except_block+ else_block? finally_block?
4383static stmt_ty
4384try_stmt_rule(Parser *p)
4385{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004386 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004387 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004388 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004389 return NULL;
4390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004391 stmt_ty _res = NULL;
4392 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004393 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4394 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004395 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004396 return NULL;
4397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004398 int _start_lineno = p->tokens[_mark]->lineno;
4399 UNUSED(_start_lineno); // Only used by EXTRA macro
4400 int _start_col_offset = p->tokens[_mark]->col_offset;
4401 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004402 { // 'try' ':' block finally_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004405 return NULL;
4406 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004407 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004408 Token * _keyword;
4409 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004410 asdl_seq* b;
4411 asdl_seq* f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004412 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004413 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004414 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004415 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004416 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004417 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004418 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004419 (f = finally_block_rule(p)) // finally_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004420 )
4421 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004422 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004423 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4424 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004425 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004426 return NULL;
4427 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004428 int _end_lineno = _token->end_lineno;
4429 UNUSED(_end_lineno); // Only used by EXTRA macro
4430 int _end_col_offset = _token->end_col_offset;
4431 UNUSED(_end_col_offset); // Only used by EXTRA macro
4432 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4433 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004434 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004436 return NULL;
4437 }
4438 goto done;
4439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004440 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004441 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004443 }
4444 { // 'try' ':' block except_block+ else_block? finally_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004445 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004446 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004447 return NULL;
4448 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004449 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004450 Token * _keyword;
4451 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004452 asdl_seq* b;
4453 void *el;
4454 asdl_seq * ex;
4455 void *f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004456 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004457 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004458 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004459 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004460 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004461 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004462 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004463 (ex = _loop1_48_rule(p)) // except_block+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004464 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004465 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004466 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004467 (f = finally_block_rule(p), 1) // finally_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004468 )
4469 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004470 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004471 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4472 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004474 return NULL;
4475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004476 int _end_lineno = _token->end_lineno;
4477 UNUSED(_end_lineno); // Only used by EXTRA macro
4478 int _end_col_offset = _token->end_col_offset;
4479 UNUSED(_end_col_offset); // Only used by EXTRA macro
4480 _res = _Py_Try ( b , ex , el , f , EXTRA );
4481 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004482 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004484 return NULL;
4485 }
4486 goto done;
4487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004488 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004489 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004492 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004493 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004494 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004495 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004496}
4497
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004498// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004499static excepthandler_ty
4500except_block_rule(Parser *p)
4501{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004502 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004505 return NULL;
4506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004507 excepthandler_ty _res = NULL;
4508 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004509 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4510 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004512 return NULL;
4513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004514 int _start_lineno = p->tokens[_mark]->lineno;
4515 UNUSED(_start_lineno); // Only used by EXTRA macro
4516 int _start_col_offset = p->tokens[_mark]->col_offset;
4517 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004518 { // 'except' expression ['as' NAME] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004520 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004521 return NULL;
4522 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004523 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004524 Token * _keyword;
4525 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004526 asdl_seq* b;
4527 expr_ty e;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004528 void *t;
4529 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004530 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004531 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004532 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004533 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004534 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004535 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004536 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004537 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004538 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004539 )
4540 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004541 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004542 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4543 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004545 return NULL;
4546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004547 int _end_lineno = _token->end_lineno;
4548 UNUSED(_end_lineno); // Only used by EXTRA macro
4549 int _end_col_offset = _token->end_col_offset;
4550 UNUSED(_end_col_offset); // Only used by EXTRA macro
4551 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4552 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004553 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004555 return NULL;
4556 }
4557 goto done;
4558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004559 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004560 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004562 }
4563 { // 'except' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004564 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004565 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004566 return NULL;
4567 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004568 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004569 Token * _keyword;
4570 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004571 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004572 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004573 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004574 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004575 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004576 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004577 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004578 )
4579 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004580 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004581 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4582 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004583 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004584 return NULL;
4585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004586 int _end_lineno = _token->end_lineno;
4587 UNUSED(_end_lineno); // Only used by EXTRA macro
4588 int _end_col_offset = _token->end_col_offset;
4589 UNUSED(_end_col_offset); // Only used by EXTRA macro
4590 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4591 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004592 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004593 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004594 return NULL;
4595 }
4596 goto done;
4597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004598 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004599 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004602 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004603 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004604 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004605 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004606}
4607
4608// finally_block: 'finally' ':' block
4609static asdl_seq*
4610finally_block_rule(Parser *p)
4611{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004612 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004613 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004614 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004615 return NULL;
4616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004617 asdl_seq* _res = NULL;
4618 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004619 { // 'finally' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004620 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004621 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004622 return NULL;
4623 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004624 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004625 Token * _keyword;
4626 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004627 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004628 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004629 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004630 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004631 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004632 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004633 (a = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004634 )
4635 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004636 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004637 _res = a;
4638 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004639 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004641 return NULL;
4642 }
4643 goto done;
4644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004645 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004646 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004649 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004650 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004651 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004652 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004653}
4654
4655// return_stmt: 'return' star_expressions?
4656static stmt_ty
4657return_stmt_rule(Parser *p)
4658{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004659 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004660 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004661 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004662 return NULL;
4663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004664 stmt_ty _res = NULL;
4665 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004666 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4667 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004669 return NULL;
4670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004671 int _start_lineno = p->tokens[_mark]->lineno;
4672 UNUSED(_start_lineno); // Only used by EXTRA macro
4673 int _start_col_offset = p->tokens[_mark]->col_offset;
4674 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004675 { // 'return' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004677 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004678 return NULL;
4679 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004680 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004681 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004682 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004683 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004684 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004685 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004686 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004687 )
4688 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004689 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004690 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4691 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004692 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004693 return NULL;
4694 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004695 int _end_lineno = _token->end_lineno;
4696 UNUSED(_end_lineno); // Only used by EXTRA macro
4697 int _end_col_offset = _token->end_col_offset;
4698 UNUSED(_end_col_offset); // Only used by EXTRA macro
4699 _res = _Py_Return ( a , EXTRA );
4700 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004701 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004702 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004703 return NULL;
4704 }
4705 goto done;
4706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004707 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004708 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004711 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004712 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004713 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004714 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004715}
4716
4717// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4718static stmt_ty
4719raise_stmt_rule(Parser *p)
4720{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004721 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004722 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004723 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004724 return NULL;
4725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004726 stmt_ty _res = NULL;
4727 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004728 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4729 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004730 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004731 return NULL;
4732 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004733 int _start_lineno = p->tokens[_mark]->lineno;
4734 UNUSED(_start_lineno); // Only used by EXTRA macro
4735 int _start_col_offset = p->tokens[_mark]->col_offset;
4736 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004737 { // 'raise' expression ['from' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004738 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004739 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004740 return NULL;
4741 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004742 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004743 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004744 expr_ty a;
4745 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004746 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004747 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004748 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004749 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004750 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004751 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004752 )
4753 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004754 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004755 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4756 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004757 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004758 return NULL;
4759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004760 int _end_lineno = _token->end_lineno;
4761 UNUSED(_end_lineno); // Only used by EXTRA macro
4762 int _end_col_offset = _token->end_col_offset;
4763 UNUSED(_end_col_offset); // Only used by EXTRA macro
4764 _res = _Py_Raise ( a , b , EXTRA );
4765 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004766 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004767 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004768 return NULL;
4769 }
4770 goto done;
4771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004772 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004773 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004775 }
4776 { // 'raise'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004777 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004778 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004779 return NULL;
4780 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004781 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004782 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004783 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004784 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004785 )
4786 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004787 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004788 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4789 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004790 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004791 return NULL;
4792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004793 int _end_lineno = _token->end_lineno;
4794 UNUSED(_end_lineno); // Only used by EXTRA macro
4795 int _end_col_offset = _token->end_col_offset;
4796 UNUSED(_end_col_offset); // Only used by EXTRA macro
4797 _res = _Py_Raise ( NULL , NULL , EXTRA );
4798 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004799 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004801 return NULL;
4802 }
4803 goto done;
4804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004805 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004806 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004809 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004810 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004811 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004812 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004813}
4814
4815// function_def: decorators function_def_raw | function_def_raw
4816static stmt_ty
4817function_def_rule(Parser *p)
4818{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004819 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004820 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004821 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004822 return NULL;
4823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004824 stmt_ty _res = NULL;
4825 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004826 { // decorators function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004827 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004828 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004829 return NULL;
4830 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004831 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004832 asdl_seq* d;
4833 stmt_ty f;
4834 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004835 (d = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004836 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004837 (f = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004838 )
4839 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004840 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004841 _res = _PyPegen_function_def_decorators ( p , d , f );
4842 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004843 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004844 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004845 return NULL;
4846 }
4847 goto done;
4848 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004849 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004850 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004852 }
4853 { // function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004854 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004855 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004856 return NULL;
4857 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004858 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004859 stmt_ty function_def_raw_var;
4860 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004861 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004862 )
4863 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004864 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004865 _res = function_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004866 goto done;
4867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004868 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004869 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004872 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004873 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004874 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004875 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004876}
4877
Guido van Rossumc001c092020-04-30 12:12:19 -07004878// function_def_raw:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004879// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4880// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004881static stmt_ty
4882function_def_raw_rule(Parser *p)
4883{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004884 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004885 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004886 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004887 return NULL;
4888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004889 stmt_ty _res = NULL;
4890 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004891 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4892 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004893 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004894 return NULL;
4895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004896 int _start_lineno = p->tokens[_mark]->lineno;
4897 UNUSED(_start_lineno); // Only used by EXTRA macro
4898 int _start_col_offset = p->tokens[_mark]->col_offset;
4899 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004900 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004901 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004902 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004903 return NULL;
4904 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004905 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004906 Token * _keyword;
4907 Token * _literal;
4908 Token * _literal_1;
4909 Token * _literal_2;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004910 void *a;
4911 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004912 expr_ty n;
4913 void *params;
Guido van Rossumc001c092020-04-30 12:12:19 -07004914 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004915 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004916 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004917 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004918 (n = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004919 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004920 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004921 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004922 (params = params_rule(p), 1) // params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004923 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004924 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004925 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004926 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004927 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004928 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004929 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004930 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Guido van Rossumc001c092020-04-30 12:12:19 -07004931 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004932 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004933 )
4934 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004935 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004936 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4937 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004938 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004939 return NULL;
4940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004941 int _end_lineno = _token->end_lineno;
4942 UNUSED(_end_lineno); // Only used by EXTRA macro
4943 int _end_col_offset = _token->end_col_offset;
4944 UNUSED(_end_col_offset); // Only used by EXTRA macro
4945 _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4946 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004947 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004948 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004949 return NULL;
4950 }
4951 goto done;
4952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004953 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004954 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004956 }
4957 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004958 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004959 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004960 return NULL;
4961 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004962 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004963 Token * _keyword;
4964 Token * _literal;
4965 Token * _literal_1;
4966 Token * _literal_2;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004967 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004968 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004969 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004970 expr_ty n;
4971 void *params;
4972 void *tc;
4973 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004974 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004975 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004976 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004977 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004978 (n = _PyPegen_name_token(p)) // NAME
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004979 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004980 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004982 (params = params_rule(p), 1) // params?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004983 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004984 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004985 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004986 (a = _tmp_52_rule(p), 1) // ['->' expression]
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004987 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004988 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004989 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004990 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004991 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004992 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004993 )
4994 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004995 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4997 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004998 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004999 return NULL;
5000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005001 int _end_lineno = _token->end_lineno;
5002 UNUSED(_end_lineno); // Only used by EXTRA macro
5003 int _end_col_offset = _token->end_col_offset;
5004 UNUSED(_end_col_offset); // Only used by EXTRA macro
5005 _res = CHECK_VERSION ( 5 , "Async functions are" , _Py_AsyncFunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
5006 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005007 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005008 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005009 return NULL;
5010 }
5011 goto done;
5012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005013 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005014 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
5015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005017 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005018 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005019 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005020 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005021}
5022
Guido van Rossumc001c092020-04-30 12:12:19 -07005023// func_type_comment:
5024// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5025// | invalid_double_type_comments
5026// | TYPE_COMMENT
Pablo Galindod9552412020-05-01 16:32:09 +01005027static Token*
Guido van Rossumc001c092020-04-30 12:12:19 -07005028func_type_comment_rule(Parser *p)
5029{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005030 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005031 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005032 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005033 return NULL;
5034 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005035 Token* _res = NULL;
5036 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005037 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005038 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005039 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005040 return NULL;
5041 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005042 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01005043 Token * newline_var;
5044 Token * t;
Guido van Rossumc001c092020-04-30 12:12:19 -07005045 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005046 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -07005047 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005048 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005049 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005050 _PyPegen_lookahead(1, _tmp_53_rule, p)
Guido van Rossumc001c092020-04-30 12:12:19 -07005051 )
5052 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005053 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005054 _res = t;
5055 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005056 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005057 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005058 return NULL;
5059 }
5060 goto done;
5061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005062 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005063 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005065 }
5066 { // invalid_double_type_comments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005068 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005069 return NULL;
5070 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005071 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005072 void *invalid_double_type_comments_var;
5073 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005074 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
Guido van Rossumc001c092020-04-30 12:12:19 -07005075 )
5076 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005077 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005078 _res = invalid_double_type_comments_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005079 goto done;
5080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005081 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005082 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005084 }
5085 { // TYPE_COMMENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005086 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005087 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005088 return NULL;
5089 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005090 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01005091 Token * type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005092 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005093 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005094 )
5095 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005096 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005097 _res = type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005098 goto done;
5099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005100 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005101 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005104 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005105 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005106 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005107 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005108}
5109
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005110// params: invalid_parameters | parameters
5111static arguments_ty
5112params_rule(Parser *p)
5113{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005114 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005115 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005116 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005117 return NULL;
5118 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005119 arguments_ty _res = NULL;
5120 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005121 { // invalid_parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005122 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005123 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005124 return NULL;
5125 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005126 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005127 void *invalid_parameters_var;
5128 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005129 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005130 )
5131 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005132 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005133 _res = invalid_parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005134 goto done;
5135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005136 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005137 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005139 }
5140 { // parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005141 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005142 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005143 return NULL;
5144 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005145 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005146 arguments_ty parameters_var;
5147 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005148 (parameters_var = parameters_rule(p)) // parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005149 )
5150 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005151 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005152 _res = parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005153 goto done;
5154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005155 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005156 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005159 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005160 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005161 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005162 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005163}
5164
5165// parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -07005166// | slash_no_default param_no_default* param_with_default* star_etc?
5167// | slash_with_default param_with_default* star_etc?
5168// | param_no_default+ param_with_default* star_etc?
5169// | param_with_default+ star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005170// | star_etc
5171static arguments_ty
5172parameters_rule(Parser *p)
5173{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005174 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005175 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005176 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005177 return NULL;
5178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005179 arguments_ty _res = NULL;
5180 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005181 { // slash_no_default param_no_default* param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005182 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005183 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005184 return NULL;
5185 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005186 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 Galindoc5fc1562020-04-22 23:29:27 +01005187 asdl_seq* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005188 asdl_seq * b;
5189 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005190 void *d;
5191 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005192 (a = slash_no_default_rule(p)) // slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005193 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005194 (b = _loop0_54_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005195 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005196 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005197 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005198 (d = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005199 )
5200 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005201 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?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005202 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5203 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005204 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005206 return NULL;
5207 }
5208 goto done;
5209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005210 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005211 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005213 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005214 { // slash_with_default param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005216 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005217 return NULL;
5218 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005219 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005220 SlashWithDefault* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005221 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005222 void *c;
5223 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005224 (a = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005225 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005226 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005227 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005228 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005229 )
5230 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005231 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005232 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5233 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005234 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005235 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005236 return NULL;
5237 }
5238 goto done;
5239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005240 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005241 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005243 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005244 { // param_no_default+ param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005245 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005246 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005247 return NULL;
5248 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005249 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005250 asdl_seq * a;
5251 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005252 void *c;
5253 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005254 (a = _loop1_57_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005255 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005256 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005257 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005258 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005259 )
5260 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005261 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005262 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5263 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005264 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005265 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005266 return NULL;
5267 }
5268 goto done;
5269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005270 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005271 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005273 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005274 { // param_with_default+ star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005275 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005276 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005277 return NULL;
5278 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005279 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005280 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005281 void *b;
5282 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005283 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005284 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005285 (b = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005286 )
5287 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005288 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005289 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5290 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005291 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005292 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005293 return NULL;
5294 }
5295 goto done;
5296 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005297 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005298 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005300 }
5301 { // star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005302 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005303 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005304 return NULL;
5305 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005306 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005307 StarEtc* a;
5308 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005309 (a = star_etc_rule(p)) // star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005310 )
5311 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005312 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005313 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5314 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005315 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005317 return NULL;
5318 }
5319 goto done;
5320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005321 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005322 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005324 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005325 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005326 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005327 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005328 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005329}
5330
Guido van Rossumc001c092020-04-30 12:12:19 -07005331// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005332static asdl_seq*
Guido van Rossumc001c092020-04-30 12:12:19 -07005333slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005334{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005335 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005336 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005337 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005338 return NULL;
5339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005340 asdl_seq* _res = NULL;
5341 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005342 { // param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005343 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005344 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005345 return NULL;
5346 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005347 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005348 Token * _literal;
5349 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005350 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005351 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005352 (a = _loop1_60_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005353 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005354 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005355 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005356 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005357 )
5358 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005359 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005360 _res = a;
5361 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005362 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005363 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005364 return NULL;
5365 }
5366 goto done;
5367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005368 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005369 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005371 }
5372 { // param_no_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005373 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005374 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005375 return NULL;
5376 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005377 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005378 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005379 asdl_seq * a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005380 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005381 (a = _loop1_61_rule(p)) // param_no_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005382 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005383 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005384 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005385 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005386 )
5387 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005388 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005389 _res = a;
5390 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005391 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005392 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005393 return NULL;
5394 }
5395 goto done;
5396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005397 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005398 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005400 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005401 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005402 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005403 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005404 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005405}
5406
Guido van Rossumc001c092020-04-30 12:12:19 -07005407// slash_with_default:
5408// | param_no_default* param_with_default+ '/' ','
5409// | param_no_default* param_with_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005410static SlashWithDefault*
5411slash_with_default_rule(Parser *p)
5412{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005413 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005414 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005415 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005416 return NULL;
5417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005418 SlashWithDefault* _res = NULL;
5419 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005420 { // param_no_default* param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005421 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005422 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005423 return NULL;
5424 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005425 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005426 Token * _literal;
5427 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005428 asdl_seq * a;
5429 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005430 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005431 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005432 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005433 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005434 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005435 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005436 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005437 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005438 )
5439 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005440 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005441 _res = _PyPegen_slash_with_default ( p , a , b );
5442 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005443 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005444 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005445 return NULL;
5446 }
5447 goto done;
5448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005449 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005450 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005452 }
5453 { // param_no_default* param_with_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005455 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005456 return NULL;
5457 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005458 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005459 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005460 asdl_seq * a;
5461 asdl_seq * b;
Guido van Rossumc001c092020-04-30 12:12:19 -07005462 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005463 (a = _loop0_64_rule(p)) // param_no_default*
Guido van Rossumc001c092020-04-30 12:12:19 -07005464 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005465 (b = _loop1_65_rule(p)) // param_with_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005466 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005467 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005468 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005469 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005470 )
5471 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005472 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005473 _res = _PyPegen_slash_with_default ( p , a , b );
5474 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005475 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005476 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005477 return NULL;
5478 }
5479 goto done;
5480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005481 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005482 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005485 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005486 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005487 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005488 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005489}
5490
5491// star_etc:
Guido van Rossumc001c092020-04-30 12:12:19 -07005492// | '*' param_no_default param_maybe_default* kwds?
5493// | '*' ',' param_maybe_default+ kwds?
5494// | kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005495// | invalid_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005496static StarEtc*
5497star_etc_rule(Parser *p)
5498{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005499 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005500 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005501 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005502 return NULL;
5503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005504 StarEtc* _res = NULL;
5505 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005506 { // '*' param_no_default param_maybe_default* kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005508 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005509 return NULL;
5510 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005511 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005512 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005513 arg_ty a;
5514 asdl_seq * b;
5515 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005516 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005517 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005518 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005519 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005520 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005521 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005522 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005523 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005524 )
5525 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005526 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005527 _res = _PyPegen_star_etc ( p , a , b , c );
5528 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005529 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005530 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005531 return NULL;
5532 }
5533 goto done;
5534 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005535 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005536 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005538 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005539 { // '*' ',' param_maybe_default+ kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005540 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005541 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005542 return NULL;
5543 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005544 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005545 Token * _literal;
5546 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005547 asdl_seq * b;
5548 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005549 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005550 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005551 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005552 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005553 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005554 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005555 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005556 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005557 )
5558 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005559 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005560 _res = _PyPegen_star_etc ( p , NULL , b , c );
5561 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005562 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005563 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005564 return NULL;
5565 }
5566 goto done;
5567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005568 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005569 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005571 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005572 { // kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005573 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005574 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005575 return NULL;
5576 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005577 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005578 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005579 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005580 (a = kwds_rule(p)) // kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005581 )
5582 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005583 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005584 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5585 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005586 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005588 return NULL;
5589 }
5590 goto done;
5591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005592 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005593 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005595 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005596 { // invalid_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005598 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005599 return NULL;
5600 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005601 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005602 void *invalid_star_etc_var;
5603 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005604 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005605 )
5606 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005607 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005608 _res = invalid_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005609 goto done;
5610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005611 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005612 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005615 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005616 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005617 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005618 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005619}
5620
Guido van Rossumc001c092020-04-30 12:12:19 -07005621// kwds: '**' param_no_default
5622static arg_ty
5623kwds_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005624{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005625 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005626 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005627 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005628 return NULL;
5629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005630 arg_ty _res = NULL;
5631 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005632 { // '**' param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005633 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005634 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005635 return NULL;
5636 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005637 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005638 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005639 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005640 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005641 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07005642 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005643 (a = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -07005644 )
5645 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005646 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005647 _res = a;
5648 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005649 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005650 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005651 return NULL;
5652 }
5653 goto done;
5654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005655 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005656 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005659 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005660 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005661 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005662 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005663}
5664
5665// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5666static arg_ty
5667param_no_default_rule(Parser *p)
5668{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005669 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005671 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005672 return NULL;
5673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005674 arg_ty _res = NULL;
5675 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005676 { // param ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005677 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005678 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005679 return NULL;
5680 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005681 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005682 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005683 arg_ty a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005684 void *tc;
5685 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005686 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005687 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005688 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005689 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005690 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005691 )
5692 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005693 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005694 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5695 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005696 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005698 return NULL;
5699 }
5700 goto done;
5701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005702 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005703 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005705 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005706 { // param TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005707 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005708 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005709 return NULL;
5710 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005711 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005712 arg_ty a;
5713 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005714 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005715 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005716 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005717 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005718 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005719 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005720 )
5721 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005722 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005723 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5724 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005725 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005726 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005727 return NULL;
5728 }
5729 goto done;
5730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005731 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005732 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005735 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005736 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005737 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005738 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005739}
5740
Guido van Rossumc001c092020-04-30 12:12:19 -07005741// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005742static NameDefaultPair*
Guido van Rossumc001c092020-04-30 12:12:19 -07005743param_with_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005744{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005745 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005746 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005747 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005748 return NULL;
5749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005750 NameDefaultPair* _res = NULL;
5751 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005752 { // param default ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005753 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005754 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005755 return NULL;
5756 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005757 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005758 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005759 arg_ty a;
5760 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005761 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005762 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005763 (a = param_rule(p)) // param
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005764 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005765 (c = default_rule(p)) // default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005766 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005767 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005768 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005769 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005770 )
5771 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005772 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005773 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5774 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005775 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005776 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005777 return NULL;
5778 }
5779 goto done;
5780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005781 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005782 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005784 }
5785 { // param default TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005786 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005787 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005788 return NULL;
5789 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005790 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005791 arg_ty a;
5792 expr_ty c;
5793 void *tc;
5794 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005795 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005796 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005797 (c = default_rule(p)) // default
Guido van Rossumc001c092020-04-30 12:12:19 -07005798 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005799 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005800 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005801 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005802 )
5803 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005804 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005805 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5806 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005807 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005808 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005809 return NULL;
5810 }
5811 goto done;
5812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005813 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005814 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005817 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005818 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005819 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005820 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005821}
5822
Guido van Rossumc001c092020-04-30 12:12:19 -07005823// param_maybe_default:
5824// | param default? ',' TYPE_COMMENT?
5825// | param default? TYPE_COMMENT? &')'
5826static NameDefaultPair*
5827param_maybe_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005828{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005829 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005830 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005831 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005832 return NULL;
5833 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005834 NameDefaultPair* _res = NULL;
5835 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005836 { // param default? ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005837 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005838 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005839 return NULL;
5840 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005841 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005842 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005843 arg_ty a;
5844 void *c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005845 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005846 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005847 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005848 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005849 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005850 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005851 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005852 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005853 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005854 )
5855 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005856 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005857 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5858 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005859 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005860 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005861 return NULL;
5862 }
5863 goto done;
5864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005865 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005866 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005868 }
5869 { // param default? TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005870 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005871 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005872 return NULL;
5873 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005874 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005875 arg_ty a;
5876 void *c;
5877 void *tc;
5878 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005879 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005880 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005881 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005882 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005883 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005884 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005885 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005886 )
5887 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005888 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005889 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5890 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005891 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005892 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005893 return NULL;
5894 }
5895 goto done;
5896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005897 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005898 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005901 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005902 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005903 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005904 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005905}
5906
Guido van Rossumc001c092020-04-30 12:12:19 -07005907// param: NAME annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005908static arg_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005909param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005910{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005911 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005912 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005913 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005914 return NULL;
5915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005916 arg_ty _res = NULL;
5917 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005918 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5919 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005921 return NULL;
5922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005923 int _start_lineno = p->tokens[_mark]->lineno;
5924 UNUSED(_start_lineno); // Only used by EXTRA macro
5925 int _start_col_offset = p->tokens[_mark]->col_offset;
5926 UNUSED(_start_col_offset); // Only used by EXTRA macro
Guido van Rossumc001c092020-04-30 12:12:19 -07005927 { // NAME annotation?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005928 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005929 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005930 return NULL;
5931 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005932 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005933 expr_ty a;
5934 void *b;
5935 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005936 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005937 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005938 (b = annotation_rule(p), 1) // annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005939 )
5940 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005941 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005942 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5943 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005944 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005945 return NULL;
5946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005947 int _end_lineno = _token->end_lineno;
5948 UNUSED(_end_lineno); // Only used by EXTRA macro
5949 int _end_col_offset = _token->end_col_offset;
5950 UNUSED(_end_col_offset); // Only used by EXTRA macro
5951 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5952 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005953 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005954 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005955 return NULL;
5956 }
5957 goto done;
5958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005959 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005960 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005963 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005964 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005965 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005966 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005967}
5968
Guido van Rossumc001c092020-04-30 12:12:19 -07005969// annotation: ':' expression
5970static expr_ty
5971annotation_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005972{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005973 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005975 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005976 return NULL;
5977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005978 expr_ty _res = NULL;
5979 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005980 { // ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005981 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005982 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005983 return NULL;
5984 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005985 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005986 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005987 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005988 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005989 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005990 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005991 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005992 )
5993 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005994 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005995 _res = a;
5996 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005997 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005998 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005999 return NULL;
6000 }
6001 goto done;
6002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006003 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006004 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006007 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006008 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006009 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006010 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006011}
6012
Guido van Rossumc001c092020-04-30 12:12:19 -07006013// default: '=' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006014static expr_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07006015default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006016{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006017 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006018 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006019 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006020 return NULL;
6021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006022 expr_ty _res = NULL;
6023 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07006024 { // '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006025 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006026 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006027 return NULL;
6028 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006029 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006030 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07006031 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006032 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006033 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Guido van Rossumc001c092020-04-30 12:12:19 -07006034 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006035 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006036 )
6037 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006038 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006039 _res = a;
6040 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07006041 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006042 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07006043 return NULL;
6044 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006045 goto done;
6046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006047 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006048 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006051 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006052 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006053 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006054 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006055}
6056
6057// decorators: (('@' named_expression NEWLINE))+
6058static asdl_seq*
6059decorators_rule(Parser *p)
6060{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006061 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006062 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006063 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006064 return NULL;
6065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006066 asdl_seq* _res = NULL;
6067 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006068 { // (('@' named_expression NEWLINE))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006069 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006070 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006071 return NULL;
6072 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006073 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006074 asdl_seq * a;
6075 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006076 (a = _loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006077 )
6078 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006079 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006080 _res = a;
6081 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006082 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006083 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006084 return NULL;
6085 }
6086 goto done;
6087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006088 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006089 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006092 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006093 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006094 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006095 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006096}
6097
6098// class_def: decorators class_def_raw | class_def_raw
6099static stmt_ty
6100class_def_rule(Parser *p)
6101{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006102 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006105 return NULL;
6106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006107 stmt_ty _res = NULL;
6108 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006109 { // decorators class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006110 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006111 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006112 return NULL;
6113 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006114 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006115 asdl_seq* a;
6116 stmt_ty b;
6117 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006118 (a = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006119 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006120 (b = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006121 )
6122 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006123 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006124 _res = _PyPegen_class_def_decorators ( p , a , b );
6125 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006126 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006128 return NULL;
6129 }
6130 goto done;
6131 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006132 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006133 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006135 }
6136 { // class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006138 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006139 return NULL;
6140 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006141 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006142 stmt_ty class_def_raw_var;
6143 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006144 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006145 )
6146 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006147 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006148 _res = class_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006149 goto done;
6150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006151 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006152 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006155 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006156 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006157 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006158 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006159}
6160
6161// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6162static stmt_ty
6163class_def_raw_rule(Parser *p)
6164{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006165 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006166 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006167 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006168 return NULL;
6169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006170 stmt_ty _res = NULL;
6171 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006172 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6173 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006174 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006175 return NULL;
6176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006177 int _start_lineno = p->tokens[_mark]->lineno;
6178 UNUSED(_start_lineno); // Only used by EXTRA macro
6179 int _start_col_offset = p->tokens[_mark]->col_offset;
6180 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006181 { // 'class' NAME ['(' arguments? ')'] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006182 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006183 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006184 return NULL;
6185 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006186 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006187 Token * _keyword;
6188 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006189 expr_ty a;
6190 void *b;
6191 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006192 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006193 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006194 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006195 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006196 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006197 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006198 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006199 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006200 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006201 (c = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006202 )
6203 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006204 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006205 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6206 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006207 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006208 return NULL;
6209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006210 int _end_lineno = _token->end_lineno;
6211 UNUSED(_end_lineno); // Only used by EXTRA macro
6212 int _end_col_offset = _token->end_col_offset;
6213 UNUSED(_end_col_offset); // Only used by EXTRA macro
6214 _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 );
6215 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006216 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006217 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006218 return NULL;
6219 }
6220 goto done;
6221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006222 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006223 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006226 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006227 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006228 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006229 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006230}
6231
6232// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
6233static asdl_seq*
6234block_rule(Parser *p)
6235{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006236 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006237 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006238 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006239 return NULL;
6240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006241 asdl_seq* _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006242 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6243 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006244 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006246 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006247 { // NEWLINE INDENT statements DEDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006249 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006250 return NULL;
6251 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006252 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006253 asdl_seq* a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01006254 Token * dedent_var;
6255 Token * indent_var;
6256 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006257 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006258 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006259 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006260 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006261 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006262 (a = statements_rule(p)) // statements
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006263 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006264 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006265 )
6266 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006267 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006268 _res = a;
6269 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006270 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006272 return NULL;
6273 }
6274 goto done;
6275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006276 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006277 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006279 }
6280 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006282 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006283 return NULL;
6284 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006285 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006286 asdl_seq* simple_stmt_var;
6287 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006288 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006289 )
6290 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006291 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006292 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006293 goto done;
6294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006295 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006296 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006298 }
6299 { // invalid_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006300 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006301 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006302 return NULL;
6303 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006304 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006305 void *invalid_block_var;
6306 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006307 (invalid_block_var = invalid_block_rule(p)) // invalid_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006308 )
6309 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006310 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006311 _res = invalid_block_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006312 goto done;
6313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006314 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006315 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006317 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006318 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006319 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006320 _PyPegen_insert_memo(p, _mark, block_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006321 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006322 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006323}
6324
6325// expressions_list: ','.star_expression+ ','?
6326static asdl_seq*
6327expressions_list_rule(Parser *p)
6328{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006329 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006330 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006331 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006332 return NULL;
6333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006334 asdl_seq* _res = NULL;
6335 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006336 { // ','.star_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006337 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006338 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006339 return NULL;
6340 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006341 D(fprintf(stderr, "%*c> expressions_list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006342 void *_opt_var;
6343 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006344 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006345 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006346 (a = _gather_70_rule(p)) // ','.star_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006347 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006348 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006349 )
6350 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006351 D(fprintf(stderr, "%*c+ expressions_list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006352 _res = a;
6353 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006354 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006355 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006356 return NULL;
6357 }
6358 goto done;
6359 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006360 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006361 D(fprintf(stderr, "%*c%s expressions_list[%d-%d]: %s failed!\n", p->level, ' ',
6362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006364 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006365 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006366 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006367 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006368}
6369
6370// star_expressions:
6371// | star_expression ((',' star_expression))+ ','?
6372// | star_expression ','
6373// | star_expression
6374static expr_ty
6375star_expressions_rule(Parser *p)
6376{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006377 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006378 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006379 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006380 return NULL;
6381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006382 expr_ty _res = NULL;
6383 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006384 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6385 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006386 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006387 return NULL;
6388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006389 int _start_lineno = p->tokens[_mark]->lineno;
6390 UNUSED(_start_lineno); // Only used by EXTRA macro
6391 int _start_col_offset = p->tokens[_mark]->col_offset;
6392 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006393 { // star_expression ((',' star_expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006394 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006395 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006396 return NULL;
6397 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006398 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006399 void *_opt_var;
6400 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006401 expr_ty a;
6402 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006403 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006404 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006405 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006406 (b = _loop1_72_rule(p)) // ((',' star_expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006407 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006408 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006409 )
6410 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006411 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006412 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6413 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006414 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006415 return NULL;
6416 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006417 int _end_lineno = _token->end_lineno;
6418 UNUSED(_end_lineno); // Only used by EXTRA macro
6419 int _end_col_offset = _token->end_col_offset;
6420 UNUSED(_end_col_offset); // Only used by EXTRA macro
6421 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6422 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006423 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006425 return NULL;
6426 }
6427 goto done;
6428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006429 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006430 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006432 }
6433 { // star_expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006435 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006436 return NULL;
6437 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006438 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006439 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006440 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006441 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006442 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006443 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006444 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006445 )
6446 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006447 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006448 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6449 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006450 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006451 return NULL;
6452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006453 int _end_lineno = _token->end_lineno;
6454 UNUSED(_end_lineno); // Only used by EXTRA macro
6455 int _end_col_offset = _token->end_col_offset;
6456 UNUSED(_end_col_offset); // Only used by EXTRA macro
6457 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6458 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006459 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006461 return NULL;
6462 }
6463 goto done;
6464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006465 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006466 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006468 }
6469 { // star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006470 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006471 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006472 return NULL;
6473 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006474 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006475 expr_ty star_expression_var;
6476 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006477 (star_expression_var = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006478 )
6479 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006480 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006481 _res = star_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006482 goto done;
6483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006484 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006485 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006488 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006489 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006490 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006491 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006492}
6493
6494// star_expression: '*' bitwise_or | expression
6495static expr_ty
6496star_expression_rule(Parser *p)
6497{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006498 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006499 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006500 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006501 return NULL;
6502 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006503 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006504 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6505 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006506 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006508 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006509 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6510 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006512 return NULL;
6513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006514 int _start_lineno = p->tokens[_mark]->lineno;
6515 UNUSED(_start_lineno); // Only used by EXTRA macro
6516 int _start_col_offset = p->tokens[_mark]->col_offset;
6517 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006518 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006520 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006521 return NULL;
6522 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006523 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006524 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006525 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006526 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006527 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006528 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006529 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006530 )
6531 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006532 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006533 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6534 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006535 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006536 return NULL;
6537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006538 int _end_lineno = _token->end_lineno;
6539 UNUSED(_end_lineno); // Only used by EXTRA macro
6540 int _end_col_offset = _token->end_col_offset;
6541 UNUSED(_end_col_offset); // Only used by EXTRA macro
6542 _res = _Py_Starred ( a , Load , EXTRA );
6543 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006544 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006545 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006546 return NULL;
6547 }
6548 goto done;
6549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006550 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006551 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006553 }
6554 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006555 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006556 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006557 return NULL;
6558 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006559 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006560 expr_ty expression_var;
6561 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006562 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006563 )
6564 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006565 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006566 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006567 goto done;
6568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006569 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006570 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006573 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006574 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006575 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006576 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006577 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006578}
6579
6580// star_named_expressions: ','.star_named_expression+ ','?
6581static asdl_seq*
6582star_named_expressions_rule(Parser *p)
6583{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006584 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006585 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006586 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006587 return NULL;
6588 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006589 asdl_seq* _res = NULL;
6590 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006591 { // ','.star_named_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006592 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006593 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006594 return NULL;
6595 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006596 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006597 void *_opt_var;
6598 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006599 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006600 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006601 (a = _gather_73_rule(p)) // ','.star_named_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006602 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006603 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006604 )
6605 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006606 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006607 _res = a;
6608 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006609 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006610 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006611 return NULL;
6612 }
6613 goto done;
6614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006615 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006616 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006619 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006620 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006621 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006622 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006623}
6624
6625// star_named_expression: '*' bitwise_or | named_expression
6626static expr_ty
6627star_named_expression_rule(Parser *p)
6628{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006629 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006630 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006631 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006632 return NULL;
6633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006634 expr_ty _res = NULL;
6635 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006636 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6637 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006638 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006639 return NULL;
6640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006641 int _start_lineno = p->tokens[_mark]->lineno;
6642 UNUSED(_start_lineno); // Only used by EXTRA macro
6643 int _start_col_offset = p->tokens[_mark]->col_offset;
6644 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006645 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006646 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006647 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006648 return NULL;
6649 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006650 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006651 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006652 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006653 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006654 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006655 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006656 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006657 )
6658 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006659 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006660 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6661 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006663 return NULL;
6664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006665 int _end_lineno = _token->end_lineno;
6666 UNUSED(_end_lineno); // Only used by EXTRA macro
6667 int _end_col_offset = _token->end_col_offset;
6668 UNUSED(_end_col_offset); // Only used by EXTRA macro
6669 _res = _Py_Starred ( a , Load , EXTRA );
6670 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006671 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006672 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006673 return NULL;
6674 }
6675 goto done;
6676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006677 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006678 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006680 }
6681 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006682 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006683 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006684 return NULL;
6685 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006686 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006687 expr_ty named_expression_var;
6688 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006689 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006690 )
6691 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006692 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006693 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006694 goto done;
6695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006696 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006697 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006700 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006701 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006702 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006703 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006704}
6705
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006706// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006707static expr_ty
6708named_expression_rule(Parser *p)
6709{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006710 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006712 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006713 return NULL;
6714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006715 expr_ty _res = NULL;
6716 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006717 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6718 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006719 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006720 return NULL;
6721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006722 int _start_lineno = p->tokens[_mark]->lineno;
6723 UNUSED(_start_lineno); // Only used by EXTRA macro
6724 int _start_col_offset = p->tokens[_mark]->col_offset;
6725 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006726 { // NAME ':=' ~ expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006727 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006728 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006729 return NULL;
6730 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006731 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6732 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006733 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006734 expr_ty a;
6735 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006736 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006737 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006738 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006739 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006740 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006741 (_cut_var = 1)
6742 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006743 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006744 )
6745 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006746 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006747 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6748 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006749 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006750 return NULL;
6751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006752 int _end_lineno = _token->end_lineno;
6753 UNUSED(_end_lineno); // Only used by EXTRA macro
6754 int _end_col_offset = _token->end_col_offset;
6755 UNUSED(_end_col_offset); // Only used by EXTRA macro
6756 _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
6757 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006758 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006760 return NULL;
6761 }
6762 goto done;
6763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006764 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006765 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6767 if (_cut_var) {
6768 D(p->level--);
6769 return NULL;
6770 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006771 }
6772 { // expression !':='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006773 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006774 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006775 return NULL;
6776 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006777 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006778 expr_ty expression_var;
6779 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006780 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006781 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006782 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006783 )
6784 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006785 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006786 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006787 goto done;
6788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006789 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006790 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006792 }
6793 { // invalid_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006795 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006796 return NULL;
6797 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006798 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006799 void *invalid_named_expression_var;
6800 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006801 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006802 )
6803 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006804 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006805 _res = invalid_named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006806 goto done;
6807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006808 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006809 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006812 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006813 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006814 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006815 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006816}
6817
6818// annotated_rhs: yield_expr | star_expressions
6819static expr_ty
6820annotated_rhs_rule(Parser *p)
6821{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006822 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006823 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006824 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006825 return NULL;
6826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006827 expr_ty _res = NULL;
6828 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006829 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006830 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006831 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006832 return NULL;
6833 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006834 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006835 expr_ty yield_expr_var;
6836 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006837 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006838 )
6839 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006840 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006841 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006842 goto done;
6843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006844 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006845 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006847 }
6848 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006849 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006850 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006851 return NULL;
6852 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006853 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006854 expr_ty star_expressions_var;
6855 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006856 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006857 )
6858 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006859 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006860 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006861 goto done;
6862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006863 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006864 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006867 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006868 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006869 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006870 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006871}
6872
6873// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6874static expr_ty
6875expressions_rule(Parser *p)
6876{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006877 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006878 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006879 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006880 return NULL;
6881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006882 expr_ty _res = NULL;
6883 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006884 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6885 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006886 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006887 return NULL;
6888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006889 int _start_lineno = p->tokens[_mark]->lineno;
6890 UNUSED(_start_lineno); // Only used by EXTRA macro
6891 int _start_col_offset = p->tokens[_mark]->col_offset;
6892 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006893 { // expression ((',' expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006894 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006895 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006896 return NULL;
6897 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006898 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006899 void *_opt_var;
6900 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006901 expr_ty a;
6902 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006903 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006904 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006905 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006906 (b = _loop1_75_rule(p)) // ((',' expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006907 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006908 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006909 )
6910 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006911 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006912 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6913 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006914 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006915 return NULL;
6916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006917 int _end_lineno = _token->end_lineno;
6918 UNUSED(_end_lineno); // Only used by EXTRA macro
6919 int _end_col_offset = _token->end_col_offset;
6920 UNUSED(_end_col_offset); // Only used by EXTRA macro
6921 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6922 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006923 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006924 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006925 return NULL;
6926 }
6927 goto done;
6928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006929 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006930 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006932 }
6933 { // expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006934 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006935 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006936 return NULL;
6937 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006938 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006939 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006940 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006941 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006942 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006943 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006944 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006945 )
6946 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006947 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6949 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006950 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006951 return NULL;
6952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006953 int _end_lineno = _token->end_lineno;
6954 UNUSED(_end_lineno); // Only used by EXTRA macro
6955 int _end_col_offset = _token->end_col_offset;
6956 UNUSED(_end_col_offset); // Only used by EXTRA macro
6957 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6958 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006959 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006960 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006961 return NULL;
6962 }
6963 goto done;
6964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006965 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006966 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006968 }
6969 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006970 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006971 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006972 return NULL;
6973 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006974 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006975 expr_ty expression_var;
6976 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006977 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006978 )
6979 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006980 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006981 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006982 goto done;
6983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006984 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006985 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006988 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006989 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006990 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006991 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006992}
6993
6994// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
6995static expr_ty
6996expression_rule(Parser *p)
6997{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006998 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007000 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007001 return NULL;
7002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007003 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007004 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
7005 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007006 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007008 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007009 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7010 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007012 return NULL;
7013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007014 int _start_lineno = p->tokens[_mark]->lineno;
7015 UNUSED(_start_lineno); // Only used by EXTRA macro
7016 int _start_col_offset = p->tokens[_mark]->col_offset;
7017 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007018 { // disjunction 'if' disjunction 'else' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007019 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007020 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007021 return NULL;
7022 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007023 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007024 Token * _keyword;
7025 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007026 expr_ty a;
7027 expr_ty b;
7028 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007029 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007030 (a = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007031 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007032 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007033 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007034 (b = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007035 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007036 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007037 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007038 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007039 )
7040 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007041 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7043 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007044 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007045 return NULL;
7046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007047 int _end_lineno = _token->end_lineno;
7048 UNUSED(_end_lineno); // Only used by EXTRA macro
7049 int _end_col_offset = _token->end_col_offset;
7050 UNUSED(_end_col_offset); // Only used by EXTRA macro
7051 _res = _Py_IfExp ( b , a , c , EXTRA );
7052 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007053 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007054 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007055 return NULL;
7056 }
7057 goto done;
7058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007059 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007060 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007062 }
7063 { // disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007064 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007065 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007066 return NULL;
7067 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007068 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007069 expr_ty disjunction_var;
7070 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007071 (disjunction_var = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007072 )
7073 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007074 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007075 _res = disjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007076 goto done;
7077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007078 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007079 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007081 }
7082 { // lambdef
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007083 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007084 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007085 return NULL;
7086 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007087 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007088 expr_ty lambdef_var;
7089 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007090 (lambdef_var = lambdef_rule(p)) // lambdef
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007091 )
7092 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007093 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007094 _res = lambdef_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007095 goto done;
7096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007097 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007098 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007101 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007102 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007103 _PyPegen_insert_memo(p, _mark, expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007104 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007105 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007106}
7107
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007108// lambdef: 'lambda' lambda_params? ':' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007109static expr_ty
7110lambdef_rule(Parser *p)
7111{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007112 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007113 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007114 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007115 return NULL;
7116 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007117 expr_ty _res = NULL;
7118 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007119 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7120 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007122 return NULL;
7123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007124 int _start_lineno = p->tokens[_mark]->lineno;
7125 UNUSED(_start_lineno); // Only used by EXTRA macro
7126 int _start_col_offset = p->tokens[_mark]->col_offset;
7127 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007128 { // 'lambda' lambda_params? ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007130 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007131 return NULL;
7132 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007133 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007134 Token * _keyword;
7135 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007136 void *a;
7137 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007138 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007139 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007140 &&
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007141 (a = lambda_params_rule(p), 1) // lambda_params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007142 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007143 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007144 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007145 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007146 )
7147 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007148 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007149 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7150 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007151 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007152 return NULL;
7153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007154 int _end_lineno = _token->end_lineno;
7155 UNUSED(_end_lineno); // Only used by EXTRA macro
7156 int _end_col_offset = _token->end_col_offset;
7157 UNUSED(_end_col_offset); // Only used by EXTRA macro
7158 _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
7159 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007160 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007162 return NULL;
7163 }
7164 goto done;
7165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007166 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007167 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7169 }
7170 _res = NULL;
7171 done:
7172 D(p->level--);
7173 return _res;
7174}
7175
7176// lambda_params: invalid_lambda_parameters | lambda_parameters
7177static arguments_ty
7178lambda_params_rule(Parser *p)
7179{
7180 D(p->level++);
7181 if (p->error_indicator) {
7182 D(p->level--);
7183 return NULL;
7184 }
7185 arguments_ty _res = NULL;
7186 int _mark = p->mark;
7187 { // invalid_lambda_parameters
7188 if (p->error_indicator) {
7189 D(p->level--);
7190 return NULL;
7191 }
7192 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7193 void *invalid_lambda_parameters_var;
7194 if (
7195 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7196 )
7197 {
7198 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7199 _res = invalid_lambda_parameters_var;
7200 goto done;
7201 }
7202 p->mark = _mark;
7203 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7205 }
7206 { // lambda_parameters
7207 if (p->error_indicator) {
7208 D(p->level--);
7209 return NULL;
7210 }
7211 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7212 arguments_ty lambda_parameters_var;
7213 if (
7214 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7215 )
7216 {
7217 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7218 _res = lambda_parameters_var;
7219 goto done;
7220 }
7221 p->mark = _mark;
7222 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007225 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007226 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007227 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007228 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007229}
7230
7231// lambda_parameters:
Guido van Rossum3941d972020-05-01 09:42:03 -07007232// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7233// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7234// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7235// | lambda_param_with_default+ lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007236// | lambda_star_etc
7237static arguments_ty
7238lambda_parameters_rule(Parser *p)
7239{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007240 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007242 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007243 return NULL;
7244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007245 arguments_ty _res = NULL;
7246 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007247 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007249 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007250 return NULL;
7251 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007252 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 Galindoc5fc1562020-04-22 23:29:27 +01007253 asdl_seq* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007254 asdl_seq * b;
7255 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007256 void *d;
7257 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007258 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007259 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007260 (b = _loop0_76_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007261 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007262 (c = _loop0_77_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007263 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007264 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007265 )
7266 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007267 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?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007268 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7269 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007270 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007272 return NULL;
7273 }
7274 goto done;
7275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007276 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007277 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007279 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007280 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007282 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007283 return NULL;
7284 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007285 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?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007286 SlashWithDefault* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007287 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007288 void *c;
7289 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007290 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007291 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007292 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007293 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007294 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007295 )
7296 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007297 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?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007298 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7299 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007300 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007301 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007302 return NULL;
7303 }
7304 goto done;
7305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007306 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007307 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007309 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007310 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007312 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007313 return NULL;
7314 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007315 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?"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007316 asdl_seq * a;
7317 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007318 void *c;
7319 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007320 (a = _loop1_79_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007321 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007322 (b = _loop0_80_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007323 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007324 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007325 )
7326 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007327 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?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007328 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7329 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007330 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007331 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007332 return NULL;
7333 }
7334 goto done;
7335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007336 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007337 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007339 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007340 { // lambda_param_with_default+ lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007341 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007342 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007343 return NULL;
7344 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007345 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007346 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007347 void *b;
7348 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007349 (a = _loop1_81_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007350 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007351 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007352 )
7353 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007354 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007355 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7356 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007357 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007358 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007359 return NULL;
7360 }
7361 goto done;
7362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007363 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007364 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007366 }
7367 { // lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007369 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007370 return NULL;
7371 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007372 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007373 StarEtc* a;
7374 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007375 (a = lambda_star_etc_rule(p)) // lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007376 )
7377 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007378 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007379 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7380 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007381 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007382 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007383 return NULL;
7384 }
7385 goto done;
7386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007387 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007388 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007391 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007392 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007393 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007394 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007395}
7396
Guido van Rossum3941d972020-05-01 09:42:03 -07007397// lambda_slash_no_default:
7398// | lambda_param_no_default+ '/' ','
7399// | lambda_param_no_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007400static asdl_seq*
Guido van Rossum3941d972020-05-01 09:42:03 -07007401lambda_slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007402{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007403 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007404 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007405 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007406 return NULL;
7407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007408 asdl_seq* _res = NULL;
7409 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007410 { // lambda_param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007411 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007412 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007413 return NULL;
7414 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007415 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007416 Token * _literal;
7417 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007418 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007419 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007420 (a = _loop1_82_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007421 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007422 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007423 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007424 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007425 )
7426 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007427 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007428 _res = a;
7429 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007430 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007431 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007432 return NULL;
7433 }
7434 goto done;
7435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007436 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007437 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007439 }
7440 { // lambda_param_no_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007441 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007442 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007443 return NULL;
7444 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007445 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007446 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007447 asdl_seq * a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007448 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007449 (a = _loop1_83_rule(p)) // lambda_param_no_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007450 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007451 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007452 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007453 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007454 )
7455 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007456 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007457 _res = a;
7458 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007459 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007461 return NULL;
7462 }
7463 goto done;
7464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007465 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007466 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007469 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007470 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007471 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007472 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007473}
7474
Guido van Rossum3941d972020-05-01 09:42:03 -07007475// lambda_slash_with_default:
7476// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7477// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007478static SlashWithDefault*
7479lambda_slash_with_default_rule(Parser *p)
7480{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007481 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007482 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007484 return NULL;
7485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007486 SlashWithDefault* _res = NULL;
7487 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007488 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007489 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007490 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007491 return NULL;
7492 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007493 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+ '/' ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007494 Token * _literal;
7495 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007496 asdl_seq * a;
7497 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007498 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007499 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007500 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007501 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007502 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007503 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007504 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007505 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007506 )
7507 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007508 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 Galindoac7a92c2020-05-10 05:34:50 +01007509 _res = _PyPegen_slash_with_default ( p , a , b );
7510 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007511 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007512 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007513 return NULL;
7514 }
7515 goto done;
7516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007517 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007518 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007520 }
7521 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007522 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007523 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007524 return NULL;
7525 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007526 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+ '/' &':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007527 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007528 asdl_seq * a;
7529 asdl_seq * b;
Guido van Rossum3941d972020-05-01 09:42:03 -07007530 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007531 (a = _loop0_86_rule(p)) // lambda_param_no_default*
Guido van Rossum3941d972020-05-01 09:42:03 -07007532 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007533 (b = _loop1_87_rule(p)) // lambda_param_with_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007534 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007535 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007536 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007537 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007538 )
7539 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007540 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 Galindoac7a92c2020-05-10 05:34:50 +01007541 _res = _PyPegen_slash_with_default ( p , a , b );
7542 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007543 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007545 return NULL;
7546 }
7547 goto done;
7548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007549 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007550 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007553 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007554 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007555 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007556 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007557}
7558
7559// lambda_star_etc:
Guido van Rossum3941d972020-05-01 09:42:03 -07007560// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7561// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7562// | lambda_kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007563// | invalid_lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007564static StarEtc*
7565lambda_star_etc_rule(Parser *p)
7566{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007567 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007569 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007570 return NULL;
7571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007572 StarEtc* _res = NULL;
7573 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007574 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007575 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007576 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007577 return NULL;
7578 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007579 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?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007580 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007581 arg_ty a;
7582 asdl_seq * b;
7583 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007584 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007585 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007586 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007587 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007588 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007589 (b = _loop0_88_rule(p)) // lambda_param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007590 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007591 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007592 )
7593 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007594 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?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007595 _res = _PyPegen_star_etc ( p , a , b , c );
7596 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007597 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007598 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007599 return NULL;
7600 }
7601 goto done;
7602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007603 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007604 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007606 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007607 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007608 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007609 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007610 return NULL;
7611 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007612 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007613 Token * _literal;
7614 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007615 asdl_seq * b;
7616 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007617 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007618 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007619 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007620 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007621 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007622 (b = _loop1_89_rule(p)) // lambda_param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007623 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007624 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007625 )
7626 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007627 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007628 _res = _PyPegen_star_etc ( p , NULL , b , c );
7629 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007630 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007631 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007632 return NULL;
7633 }
7634 goto done;
7635 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007636 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007637 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007639 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007640 { // lambda_kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007641 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007642 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007643 return NULL;
7644 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007645 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007646 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007647 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007648 (a = lambda_kwds_rule(p)) // lambda_kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007649 )
7650 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007651 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007652 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7653 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007654 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007655 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007656 return NULL;
7657 }
7658 goto done;
7659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007660 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007661 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007663 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007664 { // invalid_lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007665 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007666 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007667 return NULL;
7668 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007669 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007670 void *invalid_lambda_star_etc_var;
7671 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007672 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007673 )
7674 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007675 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007676 _res = invalid_lambda_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007677 goto done;
7678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007679 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007680 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007683 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007684 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007685 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007686 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007687}
7688
Guido van Rossum3941d972020-05-01 09:42:03 -07007689// lambda_kwds: '**' lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007690static arg_ty
Guido van Rossum3941d972020-05-01 09:42:03 -07007691lambda_kwds_rule(Parser *p)
7692{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007693 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007694 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007695 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007696 return NULL;
7697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007698 arg_ty _res = NULL;
7699 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007700 { // '**' lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007701 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007702 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007703 return NULL;
7704 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007705 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007706 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007707 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007708 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007709 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossum3941d972020-05-01 09:42:03 -07007710 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007711 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -07007712 )
7713 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007714 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007715 _res = a;
7716 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007717 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007718 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007719 return NULL;
7720 }
7721 goto done;
7722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007723 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007724 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007727 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007728 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007729 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007730 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007731}
7732
7733// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7734static arg_ty
7735lambda_param_no_default_rule(Parser *p)
7736{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007737 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007738 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007739 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007740 return NULL;
7741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007742 arg_ty _res = NULL;
7743 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007744 { // lambda_param ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007745 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007746 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007747 return NULL;
7748 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007749 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007750 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007751 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007752 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007753 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007754 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007755 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007756 )
7757 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007758 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007759 _res = a;
7760 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007761 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007762 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007763 return NULL;
7764 }
7765 goto done;
7766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007767 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007768 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007770 }
7771 { // lambda_param &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007773 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007774 return NULL;
7775 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007776 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007777 arg_ty a;
7778 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007779 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007780 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007781 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007782 )
7783 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007784 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007785 _res = a;
7786 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007787 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007788 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007789 return NULL;
7790 }
7791 goto done;
7792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007793 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007794 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007797 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007798 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007799 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007800 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007801}
7802
7803// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7804static NameDefaultPair*
7805lambda_param_with_default_rule(Parser *p)
7806{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007807 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007808 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007809 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007810 return NULL;
7811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007812 NameDefaultPair* _res = NULL;
7813 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007814 { // lambda_param default ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007815 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007816 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007817 return NULL;
7818 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007819 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007820 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007821 arg_ty a;
7822 expr_ty c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007823 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007824 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007825 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007826 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007827 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007828 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007829 )
7830 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007831 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007832 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7833 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007834 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007835 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007836 return NULL;
7837 }
7838 goto done;
7839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007840 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007841 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007843 }
7844 { // lambda_param default &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007845 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007846 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007847 return NULL;
7848 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007849 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007850 arg_ty a;
7851 expr_ty c;
7852 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007853 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007854 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007855 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007856 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007857 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007858 )
7859 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007860 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007861 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7862 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007863 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007864 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007865 return NULL;
7866 }
7867 goto done;
7868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007869 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007870 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007873 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007874 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007875 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007876 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007877}
7878
7879// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7880static NameDefaultPair*
7881lambda_param_maybe_default_rule(Parser *p)
7882{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007883 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007884 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007885 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007886 return NULL;
7887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007888 NameDefaultPair* _res = NULL;
7889 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007890 { // lambda_param default? ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007891 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007892 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007893 return NULL;
7894 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007895 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007896 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007897 arg_ty a;
7898 void *c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007899 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007900 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007901 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007902 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007903 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007904 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007905 )
7906 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007907 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007908 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7909 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007910 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007911 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007912 return NULL;
7913 }
7914 goto done;
7915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007916 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007917 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007919 }
7920 { // lambda_param default? &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007921 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007922 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007923 return NULL;
7924 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007925 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007926 arg_ty a;
7927 void *c;
7928 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007929 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007930 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007931 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007932 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007933 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007934 )
7935 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007936 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007937 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7938 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007939 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007940 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007941 return NULL;
7942 }
7943 goto done;
7944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007945 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007946 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007949 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007950 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007951 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007952 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007953}
7954
7955// lambda_param: NAME
7956static arg_ty
7957lambda_param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007958{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007959 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007960 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007962 return NULL;
7963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007964 arg_ty _res = NULL;
7965 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007966 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7967 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007968 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007969 return NULL;
7970 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007971 int _start_lineno = p->tokens[_mark]->lineno;
7972 UNUSED(_start_lineno); // Only used by EXTRA macro
7973 int _start_col_offset = p->tokens[_mark]->col_offset;
7974 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007975 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007976 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007977 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007978 return NULL;
7979 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007980 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007981 expr_ty a;
7982 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007983 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007984 )
7985 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007986 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007987 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7988 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007989 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007990 return NULL;
7991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007992 int _end_lineno = _token->end_lineno;
7993 UNUSED(_end_lineno); // Only used by EXTRA macro
7994 int _end_col_offset = _token->end_col_offset;
7995 UNUSED(_end_col_offset); // Only used by EXTRA macro
7996 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
7997 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007998 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007999 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008000 return NULL;
8001 }
8002 goto done;
8003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008004 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008005 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
8006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008008 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008009 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008010 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008011 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008012}
8013
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008014// disjunction: conjunction (('or' conjunction))+ | conjunction
8015static expr_ty
8016disjunction_rule(Parser *p)
8017{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008018 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008019 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008020 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008021 return NULL;
8022 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008023 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008024 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
8025 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008026 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008028 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008029 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8030 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008032 return NULL;
8033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008034 int _start_lineno = p->tokens[_mark]->lineno;
8035 UNUSED(_start_lineno); // Only used by EXTRA macro
8036 int _start_col_offset = p->tokens[_mark]->col_offset;
8037 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008038 { // conjunction (('or' conjunction))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008039 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008040 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008041 return NULL;
8042 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008043 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008044 expr_ty a;
8045 asdl_seq * b;
8046 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008047 (a = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008048 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008049 (b = _loop1_90_rule(p)) // (('or' conjunction))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008050 )
8051 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008052 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008053 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8054 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008055 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008056 return NULL;
8057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008058 int _end_lineno = _token->end_lineno;
8059 UNUSED(_end_lineno); // Only used by EXTRA macro
8060 int _end_col_offset = _token->end_col_offset;
8061 UNUSED(_end_col_offset); // Only used by EXTRA macro
8062 _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8063 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008064 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008065 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008066 return NULL;
8067 }
8068 goto done;
8069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008070 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008071 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008073 }
8074 { // conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008075 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008076 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008077 return NULL;
8078 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008079 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008080 expr_ty conjunction_var;
8081 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008082 (conjunction_var = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008083 )
8084 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008085 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008086 _res = conjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008087 goto done;
8088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008089 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008090 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008093 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008094 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008095 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008096 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008097 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008098}
8099
8100// conjunction: inversion (('and' inversion))+ | inversion
8101static expr_ty
8102conjunction_rule(Parser *p)
8103{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008104 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008105 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008106 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008107 return NULL;
8108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008109 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008110 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8111 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008112 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008114 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008115 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8116 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008117 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008118 return NULL;
8119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008120 int _start_lineno = p->tokens[_mark]->lineno;
8121 UNUSED(_start_lineno); // Only used by EXTRA macro
8122 int _start_col_offset = p->tokens[_mark]->col_offset;
8123 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008124 { // inversion (('and' inversion))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008125 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008126 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008127 return NULL;
8128 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008129 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008130 expr_ty a;
8131 asdl_seq * b;
8132 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008133 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008134 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008135 (b = _loop1_91_rule(p)) // (('and' inversion))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008136 )
8137 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008138 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008139 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8140 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008141 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008142 return NULL;
8143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008144 int _end_lineno = _token->end_lineno;
8145 UNUSED(_end_lineno); // Only used by EXTRA macro
8146 int _end_col_offset = _token->end_col_offset;
8147 UNUSED(_end_col_offset); // Only used by EXTRA macro
8148 _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8149 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008150 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008151 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008152 return NULL;
8153 }
8154 goto done;
8155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008156 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008157 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008159 }
8160 { // inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008161 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008162 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008163 return NULL;
8164 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008165 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008166 expr_ty inversion_var;
8167 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008168 (inversion_var = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008169 )
8170 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008171 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008172 _res = inversion_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008173 goto done;
8174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008175 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008176 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008179 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008180 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008181 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008182 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008183 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008184}
8185
8186// inversion: 'not' inversion | comparison
8187static expr_ty
8188inversion_rule(Parser *p)
8189{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008190 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008192 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008193 return NULL;
8194 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008195 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008196 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8197 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008198 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008200 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008201 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8202 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008204 return NULL;
8205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008206 int _start_lineno = p->tokens[_mark]->lineno;
8207 UNUSED(_start_lineno); // Only used by EXTRA macro
8208 int _start_col_offset = p->tokens[_mark]->col_offset;
8209 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008210 { // 'not' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008212 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008213 return NULL;
8214 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008215 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008216 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008217 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008218 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008219 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008220 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008221 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008222 )
8223 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008224 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008225 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8226 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008227 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008228 return NULL;
8229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008230 int _end_lineno = _token->end_lineno;
8231 UNUSED(_end_lineno); // Only used by EXTRA macro
8232 int _end_col_offset = _token->end_col_offset;
8233 UNUSED(_end_col_offset); // Only used by EXTRA macro
8234 _res = _Py_UnaryOp ( Not , a , EXTRA );
8235 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008236 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008237 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008238 return NULL;
8239 }
8240 goto done;
8241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008242 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008243 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008245 }
8246 { // comparison
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008247 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008248 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008249 return NULL;
8250 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008251 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008252 expr_ty comparison_var;
8253 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008254 (comparison_var = comparison_rule(p)) // comparison
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008255 )
8256 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008257 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008258 _res = comparison_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008259 goto done;
8260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008261 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008262 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008265 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008266 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008267 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008268 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008269 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008270}
8271
8272// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8273static expr_ty
8274comparison_rule(Parser *p)
8275{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008276 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008277 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008278 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008279 return NULL;
8280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008281 expr_ty _res = NULL;
8282 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008283 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8284 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008285 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008286 return NULL;
8287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008288 int _start_lineno = p->tokens[_mark]->lineno;
8289 UNUSED(_start_lineno); // Only used by EXTRA macro
8290 int _start_col_offset = p->tokens[_mark]->col_offset;
8291 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008292 { // bitwise_or compare_op_bitwise_or_pair+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008293 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008294 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008295 return NULL;
8296 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008297 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008298 expr_ty a;
8299 asdl_seq * b;
8300 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008301 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008302 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008303 (b = _loop1_92_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008304 )
8305 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008306 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008307 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8308 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008309 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008310 return NULL;
8311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008312 int _end_lineno = _token->end_lineno;
8313 UNUSED(_end_lineno); // Only used by EXTRA macro
8314 int _end_col_offset = _token->end_col_offset;
8315 UNUSED(_end_col_offset); // Only used by EXTRA macro
8316 _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
8317 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008318 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008319 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008320 return NULL;
8321 }
8322 goto done;
8323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008324 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008325 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008327 }
8328 { // bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008329 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008330 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008331 return NULL;
8332 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008333 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008334 expr_ty bitwise_or_var;
8335 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008336 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008337 )
8338 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008339 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008340 _res = bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008341 goto done;
8342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008343 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008344 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008347 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008348 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008349 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008350 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008351}
8352
8353// compare_op_bitwise_or_pair:
8354// | eq_bitwise_or
8355// | noteq_bitwise_or
8356// | lte_bitwise_or
8357// | lt_bitwise_or
8358// | gte_bitwise_or
8359// | gt_bitwise_or
8360// | notin_bitwise_or
8361// | in_bitwise_or
8362// | isnot_bitwise_or
8363// | is_bitwise_or
8364static CmpopExprPair*
8365compare_op_bitwise_or_pair_rule(Parser *p)
8366{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008367 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008369 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008370 return NULL;
8371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008372 CmpopExprPair* _res = NULL;
8373 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008374 { // eq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008375 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008376 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008377 return NULL;
8378 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008379 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008380 CmpopExprPair* eq_bitwise_or_var;
8381 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008382 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008383 )
8384 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008385 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008386 _res = eq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008387 goto done;
8388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008389 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008390 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008392 }
8393 { // noteq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008394 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008395 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008396 return NULL;
8397 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008398 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008399 CmpopExprPair* noteq_bitwise_or_var;
8400 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008401 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008402 )
8403 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008404 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008405 _res = noteq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008406 goto done;
8407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008408 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008409 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008411 }
8412 { // lte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008413 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008414 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008415 return NULL;
8416 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008417 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008418 CmpopExprPair* lte_bitwise_or_var;
8419 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008420 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008421 )
8422 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008423 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008424 _res = lte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008425 goto done;
8426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008427 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008428 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008430 }
8431 { // lt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008433 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008434 return NULL;
8435 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008436 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008437 CmpopExprPair* lt_bitwise_or_var;
8438 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008439 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008440 )
8441 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008442 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008443 _res = lt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008444 goto done;
8445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008446 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008447 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008449 }
8450 { // gte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008451 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008452 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008453 return NULL;
8454 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008455 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008456 CmpopExprPair* gte_bitwise_or_var;
8457 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008458 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008459 )
8460 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008461 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008462 _res = gte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008463 goto done;
8464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008465 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008466 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008468 }
8469 { // gt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008470 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008471 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008472 return NULL;
8473 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008474 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008475 CmpopExprPair* gt_bitwise_or_var;
8476 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008477 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008478 )
8479 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008480 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008481 _res = gt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008482 goto done;
8483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008484 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008485 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008487 }
8488 { // notin_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008489 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008490 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008491 return NULL;
8492 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008493 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008494 CmpopExprPair* notin_bitwise_or_var;
8495 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008496 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008497 )
8498 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008499 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008500 _res = notin_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008501 goto done;
8502 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008503 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008504 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008506 }
8507 { // in_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008508 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008509 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008510 return NULL;
8511 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008512 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008513 CmpopExprPair* in_bitwise_or_var;
8514 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008515 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008516 )
8517 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008518 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008519 _res = in_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008520 goto done;
8521 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008522 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008523 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008525 }
8526 { // isnot_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008527 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008528 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008529 return NULL;
8530 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008531 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008532 CmpopExprPair* isnot_bitwise_or_var;
8533 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008534 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008535 )
8536 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008537 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008538 _res = isnot_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008539 goto done;
8540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008541 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008542 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008544 }
8545 { // is_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008546 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008547 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008548 return NULL;
8549 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008550 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008551 CmpopExprPair* is_bitwise_or_var;
8552 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008553 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008554 )
8555 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008556 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008557 _res = is_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008558 goto done;
8559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008560 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008561 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008564 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008565 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008566 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008567 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008568}
8569
8570// eq_bitwise_or: '==' bitwise_or
8571static CmpopExprPair*
8572eq_bitwise_or_rule(Parser *p)
8573{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008574 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008575 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008576 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008577 return NULL;
8578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008579 CmpopExprPair* _res = NULL;
8580 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008581 { // '==' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008582 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008583 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008584 return NULL;
8585 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008586 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008587 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008588 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008589 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008590 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008591 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008592 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008593 )
8594 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008595 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008596 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8597 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008598 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008599 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008600 return NULL;
8601 }
8602 goto done;
8603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008604 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008605 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008608 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008609 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008610 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008611 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008612}
8613
Pablo Galindo2b74c832020-04-27 18:02:07 +01008614// noteq_bitwise_or: ('!=') bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008615static CmpopExprPair*
8616noteq_bitwise_or_rule(Parser *p)
8617{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008618 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008620 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008621 return NULL;
8622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008623 CmpopExprPair* _res = NULL;
8624 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +01008625 { // ('!=') bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008626 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008627 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008628 return NULL;
8629 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008630 D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008631 void *_tmp_93_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008632 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008633 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008634 (_tmp_93_var = _tmp_93_rule(p)) // '!='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008635 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008636 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008637 )
8638 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008639 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008640 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8641 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008642 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008643 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008644 return NULL;
8645 }
8646 goto done;
8647 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008648 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008649 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008652 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008653 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008654 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008655 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008656}
8657
8658// lte_bitwise_or: '<=' bitwise_or
8659static CmpopExprPair*
8660lte_bitwise_or_rule(Parser *p)
8661{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008662 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008663 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008665 return NULL;
8666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008667 CmpopExprPair* _res = NULL;
8668 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008669 { // '<=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008671 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008672 return NULL;
8673 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008674 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008675 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008676 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008677 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008678 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008679 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008680 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008681 )
8682 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008683 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008684 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8685 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008686 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008687 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008688 return NULL;
8689 }
8690 goto done;
8691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008692 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008693 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008696 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008697 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008698 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008699 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008700}
8701
8702// lt_bitwise_or: '<' bitwise_or
8703static CmpopExprPair*
8704lt_bitwise_or_rule(Parser *p)
8705{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008706 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008707 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008709 return NULL;
8710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008711 CmpopExprPair* _res = NULL;
8712 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008713 { // '<' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008715 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008716 return NULL;
8717 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008718 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008719 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008720 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008721 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008722 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008723 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008724 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008725 )
8726 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008727 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008728 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8729 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008730 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008731 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008732 return NULL;
8733 }
8734 goto done;
8735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008736 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008737 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008740 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008741 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008742 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008743 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008744}
8745
8746// gte_bitwise_or: '>=' bitwise_or
8747static CmpopExprPair*
8748gte_bitwise_or_rule(Parser *p)
8749{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008750 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008751 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008752 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008753 return NULL;
8754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008755 CmpopExprPair* _res = NULL;
8756 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008757 { // '>=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008758 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008759 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008760 return NULL;
8761 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008762 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008763 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008764 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008765 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008766 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008767 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008768 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008769 )
8770 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008771 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008772 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8773 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008774 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008775 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008776 return NULL;
8777 }
8778 goto done;
8779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008780 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008781 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008784 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008785 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008786 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008787 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008788}
8789
8790// gt_bitwise_or: '>' bitwise_or
8791static CmpopExprPair*
8792gt_bitwise_or_rule(Parser *p)
8793{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008794 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008795 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008796 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008797 return NULL;
8798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008799 CmpopExprPair* _res = NULL;
8800 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008801 { // '>' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008802 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008803 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008804 return NULL;
8805 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008806 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008807 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008808 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008809 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008810 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008811 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008812 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008813 )
8814 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008815 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008816 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8817 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008818 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008819 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008820 return NULL;
8821 }
8822 goto done;
8823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008824 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008825 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008828 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008829 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008830 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008831 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008832}
8833
8834// notin_bitwise_or: 'not' 'in' bitwise_or
8835static CmpopExprPair*
8836notin_bitwise_or_rule(Parser *p)
8837{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008838 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008839 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008840 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008841 return NULL;
8842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008843 CmpopExprPair* _res = NULL;
8844 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008845 { // 'not' 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008847 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008848 return NULL;
8849 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008850 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008851 Token * _keyword;
8852 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008853 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008854 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008855 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008856 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008857 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008858 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008859 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008860 )
8861 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008862 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008863 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8864 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008865 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008867 return NULL;
8868 }
8869 goto done;
8870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008871 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008872 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008875 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008876 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008877 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008878 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008879}
8880
8881// in_bitwise_or: 'in' bitwise_or
8882static CmpopExprPair*
8883in_bitwise_or_rule(Parser *p)
8884{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008885 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008886 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008887 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008888 return NULL;
8889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008890 CmpopExprPair* _res = NULL;
8891 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008892 { // 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008893 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008894 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008895 return NULL;
8896 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008897 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008898 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008899 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008900 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008901 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008902 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008903 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008904 )
8905 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008906 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008907 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8908 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008909 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008910 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008911 return NULL;
8912 }
8913 goto done;
8914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008915 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008916 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008918 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008919 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008920 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008921 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008922 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008923}
8924
8925// isnot_bitwise_or: 'is' 'not' bitwise_or
8926static CmpopExprPair*
8927isnot_bitwise_or_rule(Parser *p)
8928{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008929 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008930 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008931 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008932 return NULL;
8933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008934 CmpopExprPair* _res = NULL;
8935 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008936 { // 'is' 'not' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008937 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008938 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008939 return NULL;
8940 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008941 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008942 Token * _keyword;
8943 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008944 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008945 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008946 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008947 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008948 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008949 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008950 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008951 )
8952 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008953 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008954 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8955 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008956 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008957 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008958 return NULL;
8959 }
8960 goto done;
8961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008962 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008963 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008966 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008967 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008968 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008969 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008970}
8971
8972// is_bitwise_or: 'is' bitwise_or
8973static CmpopExprPair*
8974is_bitwise_or_rule(Parser *p)
8975{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008976 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008977 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008978 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008979 return NULL;
8980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008981 CmpopExprPair* _res = NULL;
8982 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008983 { // 'is' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008984 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008985 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008986 return NULL;
8987 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008988 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008989 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008990 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008991 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008992 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008993 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008994 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008995 )
8996 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008997 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008998 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
8999 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009000 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009001 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009002 return NULL;
9003 }
9004 goto done;
9005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009006 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009007 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009010 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009011 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009012 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009013 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009014}
9015
9016// Left-recursive
9017// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
9018static expr_ty bitwise_or_raw(Parser *);
9019static expr_ty
9020bitwise_or_rule(Parser *p)
9021{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009022 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009023 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009024 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
9025 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009026 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009028 int _mark = p->mark;
9029 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009030 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009031 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009032 if (tmpvar_1) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009033 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009034 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009036 p->mark = _mark;
9037 void *_raw = bitwise_or_raw(p);
9038 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009039 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009040 _resmark = p->mark;
9041 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009043 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009044 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009045 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009046}
9047static expr_ty
9048bitwise_or_raw(Parser *p)
9049{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009050 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009051 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009052 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009053 return NULL;
9054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009055 expr_ty _res = NULL;
9056 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009057 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9058 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009059 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009060 return NULL;
9061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009062 int _start_lineno = p->tokens[_mark]->lineno;
9063 UNUSED(_start_lineno); // Only used by EXTRA macro
9064 int _start_col_offset = p->tokens[_mark]->col_offset;
9065 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009066 { // bitwise_or '|' bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009068 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009069 return NULL;
9070 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009071 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009072 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009073 expr_ty a;
9074 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009075 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009076 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009077 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009078 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009079 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009080 (b = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009081 )
9082 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009083 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009084 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9085 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009086 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009087 return NULL;
9088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009089 int _end_lineno = _token->end_lineno;
9090 UNUSED(_end_lineno); // Only used by EXTRA macro
9091 int _end_col_offset = _token->end_col_offset;
9092 UNUSED(_end_col_offset); // Only used by EXTRA macro
9093 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9094 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009095 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009096 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009097 return NULL;
9098 }
9099 goto done;
9100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009101 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009102 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009104 }
9105 { // bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009106 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009107 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009108 return NULL;
9109 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009110 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009111 expr_ty bitwise_xor_var;
9112 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009113 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009114 )
9115 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009116 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009117 _res = bitwise_xor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009118 goto done;
9119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009120 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009121 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009124 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009125 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009126 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009127 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009128}
9129
9130// Left-recursive
9131// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9132static expr_ty bitwise_xor_raw(Parser *);
9133static expr_ty
9134bitwise_xor_rule(Parser *p)
9135{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009136 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009137 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009138 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9139 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009140 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009142 int _mark = p->mark;
9143 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009144 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009145 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009146 if (tmpvar_2) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009147 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009148 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009150 p->mark = _mark;
9151 void *_raw = bitwise_xor_raw(p);
9152 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009153 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009154 _resmark = p->mark;
9155 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009157 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009158 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009159 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009160}
9161static expr_ty
9162bitwise_xor_raw(Parser *p)
9163{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009164 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009165 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009166 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009167 return NULL;
9168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009169 expr_ty _res = NULL;
9170 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009171 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9172 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009173 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009174 return NULL;
9175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009176 int _start_lineno = p->tokens[_mark]->lineno;
9177 UNUSED(_start_lineno); // Only used by EXTRA macro
9178 int _start_col_offset = p->tokens[_mark]->col_offset;
9179 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009180 { // bitwise_xor '^' bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009181 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009182 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009183 return NULL;
9184 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009185 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009186 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009187 expr_ty a;
9188 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009189 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009190 (a = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009191 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009192 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009193 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009194 (b = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009195 )
9196 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009197 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009198 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9199 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009200 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009201 return NULL;
9202 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009203 int _end_lineno = _token->end_lineno;
9204 UNUSED(_end_lineno); // Only used by EXTRA macro
9205 int _end_col_offset = _token->end_col_offset;
9206 UNUSED(_end_col_offset); // Only used by EXTRA macro
9207 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9208 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009209 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009210 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009211 return NULL;
9212 }
9213 goto done;
9214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009215 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009216 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009218 }
9219 { // bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009220 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009221 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009222 return NULL;
9223 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009224 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009225 expr_ty bitwise_and_var;
9226 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009227 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009228 )
9229 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009230 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009231 _res = bitwise_and_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009232 goto done;
9233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009234 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009235 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009238 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009239 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009240 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009241 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009242}
9243
9244// Left-recursive
9245// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9246static expr_ty bitwise_and_raw(Parser *);
9247static expr_ty
9248bitwise_and_rule(Parser *p)
9249{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009250 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009251 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009252 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9253 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009254 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009256 int _mark = p->mark;
9257 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009258 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009259 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009260 if (tmpvar_3) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009261 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009262 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009264 p->mark = _mark;
9265 void *_raw = bitwise_and_raw(p);
9266 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009267 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009268 _resmark = p->mark;
9269 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009270 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009271 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009272 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009273 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009274}
9275static expr_ty
9276bitwise_and_raw(Parser *p)
9277{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009278 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009281 return NULL;
9282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009283 expr_ty _res = NULL;
9284 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009285 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9286 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009287 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009288 return NULL;
9289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009290 int _start_lineno = p->tokens[_mark]->lineno;
9291 UNUSED(_start_lineno); // Only used by EXTRA macro
9292 int _start_col_offset = p->tokens[_mark]->col_offset;
9293 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009294 { // bitwise_and '&' shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009295 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009296 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009297 return NULL;
9298 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009299 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009300 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009301 expr_ty a;
9302 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009303 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009304 (a = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009305 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009306 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009307 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009308 (b = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009309 )
9310 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009311 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009312 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9313 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009314 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009315 return NULL;
9316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009317 int _end_lineno = _token->end_lineno;
9318 UNUSED(_end_lineno); // Only used by EXTRA macro
9319 int _end_col_offset = _token->end_col_offset;
9320 UNUSED(_end_col_offset); // Only used by EXTRA macro
9321 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9322 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009323 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009324 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009325 return NULL;
9326 }
9327 goto done;
9328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009329 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009330 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009332 }
9333 { // shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009335 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009336 return NULL;
9337 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009338 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009339 expr_ty shift_expr_var;
9340 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009341 (shift_expr_var = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009342 )
9343 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009344 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009345 _res = shift_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009346 goto done;
9347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009348 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009349 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009352 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009353 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009354 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009355 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009356}
9357
9358// Left-recursive
9359// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9360static expr_ty shift_expr_raw(Parser *);
9361static expr_ty
9362shift_expr_rule(Parser *p)
9363{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009364 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009365 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009366 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9367 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009368 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009370 int _mark = p->mark;
9371 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009372 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009373 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009374 if (tmpvar_4) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009375 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009376 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009378 p->mark = _mark;
9379 void *_raw = shift_expr_raw(p);
9380 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009381 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009382 _resmark = p->mark;
9383 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009385 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009386 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009387 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009388}
9389static expr_ty
9390shift_expr_raw(Parser *p)
9391{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009392 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009393 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009395 return NULL;
9396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009397 expr_ty _res = NULL;
9398 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009399 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9400 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009402 return NULL;
9403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009404 int _start_lineno = p->tokens[_mark]->lineno;
9405 UNUSED(_start_lineno); // Only used by EXTRA macro
9406 int _start_col_offset = p->tokens[_mark]->col_offset;
9407 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009408 { // shift_expr '<<' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009410 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009411 return NULL;
9412 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009413 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009414 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009415 expr_ty a;
9416 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009417 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009418 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009419 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009420 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009421 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009422 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009423 )
9424 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009425 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009426 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9427 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009428 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009429 return NULL;
9430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009431 int _end_lineno = _token->end_lineno;
9432 UNUSED(_end_lineno); // Only used by EXTRA macro
9433 int _end_col_offset = _token->end_col_offset;
9434 UNUSED(_end_col_offset); // Only used by EXTRA macro
9435 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9436 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009437 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009438 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009439 return NULL;
9440 }
9441 goto done;
9442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009443 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009444 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009446 }
9447 { // shift_expr '>>' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009448 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009449 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009450 return NULL;
9451 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009452 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009453 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009454 expr_ty a;
9455 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009456 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009457 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009458 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009459 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009460 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009461 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009462 )
9463 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009464 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009465 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9466 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009467 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009468 return NULL;
9469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009470 int _end_lineno = _token->end_lineno;
9471 UNUSED(_end_lineno); // Only used by EXTRA macro
9472 int _end_col_offset = _token->end_col_offset;
9473 UNUSED(_end_col_offset); // Only used by EXTRA macro
9474 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9475 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009476 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009477 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009478 return NULL;
9479 }
9480 goto done;
9481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009482 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009483 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009485 }
9486 { // sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009488 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009489 return NULL;
9490 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009491 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009492 expr_ty sum_var;
9493 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009494 (sum_var = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009495 )
9496 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009497 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009498 _res = sum_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009499 goto done;
9500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009501 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009502 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009505 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009506 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009507 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009508 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009509}
9510
9511// Left-recursive
9512// sum: sum '+' term | sum '-' term | term
9513static expr_ty sum_raw(Parser *);
9514static expr_ty
9515sum_rule(Parser *p)
9516{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009517 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009518 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009519 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9520 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009521 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009523 int _mark = p->mark;
9524 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009525 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009526 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009527 if (tmpvar_5) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009528 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009529 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009531 p->mark = _mark;
9532 void *_raw = sum_raw(p);
9533 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009534 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009535 _resmark = p->mark;
9536 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009538 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009539 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009540 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009541}
9542static expr_ty
9543sum_raw(Parser *p)
9544{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009545 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009546 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009547 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009548 return NULL;
9549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009550 expr_ty _res = NULL;
9551 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009552 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9553 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009555 return NULL;
9556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009557 int _start_lineno = p->tokens[_mark]->lineno;
9558 UNUSED(_start_lineno); // Only used by EXTRA macro
9559 int _start_col_offset = p->tokens[_mark]->col_offset;
9560 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009561 { // sum '+' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009562 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009563 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009564 return NULL;
9565 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009566 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009567 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009568 expr_ty a;
9569 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009570 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009571 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009572 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009573 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009574 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009575 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009576 )
9577 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009578 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009579 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9580 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009581 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009582 return NULL;
9583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009584 int _end_lineno = _token->end_lineno;
9585 UNUSED(_end_lineno); // Only used by EXTRA macro
9586 int _end_col_offset = _token->end_col_offset;
9587 UNUSED(_end_col_offset); // Only used by EXTRA macro
9588 _res = _Py_BinOp ( a , Add , b , EXTRA );
9589 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009590 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009591 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009592 return NULL;
9593 }
9594 goto done;
9595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009596 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009597 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009599 }
9600 { // sum '-' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009603 return NULL;
9604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009605 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009606 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009607 expr_ty a;
9608 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009609 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009610 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009611 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009612 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009613 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009614 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009615 )
9616 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009617 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009618 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9619 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009620 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009621 return NULL;
9622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009623 int _end_lineno = _token->end_lineno;
9624 UNUSED(_end_lineno); // Only used by EXTRA macro
9625 int _end_col_offset = _token->end_col_offset;
9626 UNUSED(_end_col_offset); // Only used by EXTRA macro
9627 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9628 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009629 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009631 return NULL;
9632 }
9633 goto done;
9634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009635 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009636 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009638 }
9639 { // term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009640 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009641 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009642 return NULL;
9643 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009644 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009645 expr_ty term_var;
9646 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009647 (term_var = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009648 )
9649 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009650 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009651 _res = term_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009652 goto done;
9653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009654 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009655 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009658 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009659 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009660 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009661 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009662}
9663
9664// Left-recursive
9665// term:
9666// | term '*' factor
9667// | term '/' factor
9668// | term '//' factor
9669// | term '%' factor
9670// | term '@' factor
9671// | factor
9672static expr_ty term_raw(Parser *);
9673static expr_ty
9674term_rule(Parser *p)
9675{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009676 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009677 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009678 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9679 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009680 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009682 int _mark = p->mark;
9683 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009684 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009685 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009686 if (tmpvar_6) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009687 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009688 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009690 p->mark = _mark;
9691 void *_raw = term_raw(p);
9692 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009693 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009694 _resmark = p->mark;
9695 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009697 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009698 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009699 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009700}
9701static expr_ty
9702term_raw(Parser *p)
9703{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009704 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009706 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009707 return NULL;
9708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009709 expr_ty _res = NULL;
9710 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009711 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9712 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009713 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009714 return NULL;
9715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009716 int _start_lineno = p->tokens[_mark]->lineno;
9717 UNUSED(_start_lineno); // Only used by EXTRA macro
9718 int _start_col_offset = p->tokens[_mark]->col_offset;
9719 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009720 { // term '*' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009721 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009722 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009723 return NULL;
9724 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009725 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009726 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009727 expr_ty a;
9728 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009729 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009730 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009731 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009732 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009733 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009734 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009735 )
9736 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009737 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009738 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9739 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009741 return NULL;
9742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009743 int _end_lineno = _token->end_lineno;
9744 UNUSED(_end_lineno); // Only used by EXTRA macro
9745 int _end_col_offset = _token->end_col_offset;
9746 UNUSED(_end_col_offset); // Only used by EXTRA macro
9747 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9748 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009749 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009751 return NULL;
9752 }
9753 goto done;
9754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009755 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009756 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009758 }
9759 { // term '/' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009761 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009762 return NULL;
9763 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009764 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009765 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009766 expr_ty a;
9767 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009768 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009769 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009770 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009771 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009772 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009773 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009774 )
9775 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009776 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9778 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009780 return NULL;
9781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009782 int _end_lineno = _token->end_lineno;
9783 UNUSED(_end_lineno); // Only used by EXTRA macro
9784 int _end_col_offset = _token->end_col_offset;
9785 UNUSED(_end_col_offset); // Only used by EXTRA macro
9786 _res = _Py_BinOp ( a , Div , b , EXTRA );
9787 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009788 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009789 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009790 return NULL;
9791 }
9792 goto done;
9793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009794 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009795 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009797 }
9798 { // term '//' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009800 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009801 return NULL;
9802 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009803 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009804 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009805 expr_ty a;
9806 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009807 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009808 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009809 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009810 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009811 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009812 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009813 )
9814 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009815 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9817 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009819 return NULL;
9820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009821 int _end_lineno = _token->end_lineno;
9822 UNUSED(_end_lineno); // Only used by EXTRA macro
9823 int _end_col_offset = _token->end_col_offset;
9824 UNUSED(_end_col_offset); // Only used by EXTRA macro
9825 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9826 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009827 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009829 return NULL;
9830 }
9831 goto done;
9832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009833 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009834 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009836 }
9837 { // term '%' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009839 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009840 return NULL;
9841 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009842 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009843 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009844 expr_ty a;
9845 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009846 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009847 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009848 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009849 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009850 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009851 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009852 )
9853 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009854 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009855 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9856 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009857 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009858 return NULL;
9859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009860 int _end_lineno = _token->end_lineno;
9861 UNUSED(_end_lineno); // Only used by EXTRA macro
9862 int _end_col_offset = _token->end_col_offset;
9863 UNUSED(_end_col_offset); // Only used by EXTRA macro
9864 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9865 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009866 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009867 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009868 return NULL;
9869 }
9870 goto done;
9871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009872 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009873 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009875 }
9876 { // term '@' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009877 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009878 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009879 return NULL;
9880 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009881 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009882 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009883 expr_ty a;
9884 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009885 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009886 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009887 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009888 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009889 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009890 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009891 )
9892 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009893 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009894 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9895 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009896 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009897 return NULL;
9898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009899 int _end_lineno = _token->end_lineno;
9900 UNUSED(_end_lineno); // Only used by EXTRA macro
9901 int _end_col_offset = _token->end_col_offset;
9902 UNUSED(_end_col_offset); // Only used by EXTRA macro
9903 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
9904 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009905 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009906 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009907 return NULL;
9908 }
9909 goto done;
9910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009911 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009912 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009914 }
9915 { // factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009916 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009917 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009918 return NULL;
9919 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009920 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009921 expr_ty factor_var;
9922 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009923 (factor_var = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009924 )
9925 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009926 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009927 _res = factor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009928 goto done;
9929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009930 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009931 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009934 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009935 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009936 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009937 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009938}
9939
9940// factor: '+' factor | '-' factor | '~' factor | power
9941static expr_ty
9942factor_rule(Parser *p)
9943{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009944 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009945 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009946 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009947 return NULL;
9948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009949 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009950 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9951 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009952 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009954 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009955 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9956 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009957 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009958 return NULL;
9959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009960 int _start_lineno = p->tokens[_mark]->lineno;
9961 UNUSED(_start_lineno); // Only used by EXTRA macro
9962 int _start_col_offset = p->tokens[_mark]->col_offset;
9963 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009964 { // '+' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009966 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009967 return NULL;
9968 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009969 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009970 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009971 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009972 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009973 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009974 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009975 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009976 )
9977 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009978 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009979 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9980 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009981 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009982 return NULL;
9983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009984 int _end_lineno = _token->end_lineno;
9985 UNUSED(_end_lineno); // Only used by EXTRA macro
9986 int _end_col_offset = _token->end_col_offset;
9987 UNUSED(_end_col_offset); // Only used by EXTRA macro
9988 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9989 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009990 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009991 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009992 return NULL;
9993 }
9994 goto done;
9995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009996 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009997 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009999 }
10000 { // '-' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010001 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010002 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010003 return NULL;
10004 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010005 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010006 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010007 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010008 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010009 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010010 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010011 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010012 )
10013 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010014 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010015 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10016 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010017 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010018 return NULL;
10019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010020 int _end_lineno = _token->end_lineno;
10021 UNUSED(_end_lineno); // Only used by EXTRA macro
10022 int _end_col_offset = _token->end_col_offset;
10023 UNUSED(_end_col_offset); // Only used by EXTRA macro
10024 _res = _Py_UnaryOp ( USub , a , EXTRA );
10025 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010026 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010027 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010028 return NULL;
10029 }
10030 goto done;
10031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010032 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010033 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010035 }
10036 { // '~' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010037 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010038 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010039 return NULL;
10040 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010041 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010042 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010043 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010044 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010045 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010046 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010047 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010048 )
10049 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010050 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010051 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10052 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010054 return NULL;
10055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010056 int _end_lineno = _token->end_lineno;
10057 UNUSED(_end_lineno); // Only used by EXTRA macro
10058 int _end_col_offset = _token->end_col_offset;
10059 UNUSED(_end_col_offset); // Only used by EXTRA macro
10060 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10061 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010062 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010063 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010064 return NULL;
10065 }
10066 goto done;
10067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010068 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010069 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010071 }
10072 { // power
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010074 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010075 return NULL;
10076 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010077 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010078 expr_ty power_var;
10079 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010080 (power_var = power_rule(p)) // power
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010081 )
10082 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010083 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010084 _res = power_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010085 goto done;
10086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010087 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010088 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010091 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010092 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010093 _PyPegen_insert_memo(p, _mark, factor_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010094 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010095 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010096}
10097
10098// power: await_primary '**' factor | await_primary
10099static expr_ty
10100power_rule(Parser *p)
10101{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010102 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010105 return NULL;
10106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010107 expr_ty _res = NULL;
10108 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010109 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10110 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010111 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010112 return NULL;
10113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010114 int _start_lineno = p->tokens[_mark]->lineno;
10115 UNUSED(_start_lineno); // Only used by EXTRA macro
10116 int _start_col_offset = p->tokens[_mark]->col_offset;
10117 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010118 { // await_primary '**' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010119 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010120 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010121 return NULL;
10122 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010123 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010124 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010125 expr_ty a;
10126 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010127 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010128 (a = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010129 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010130 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010131 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010132 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010133 )
10134 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010135 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010136 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10137 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010138 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010139 return NULL;
10140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010141 int _end_lineno = _token->end_lineno;
10142 UNUSED(_end_lineno); // Only used by EXTRA macro
10143 int _end_col_offset = _token->end_col_offset;
10144 UNUSED(_end_col_offset); // Only used by EXTRA macro
10145 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10146 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010147 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010148 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010149 return NULL;
10150 }
10151 goto done;
10152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010153 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010154 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010156 }
10157 { // await_primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010158 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010159 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010160 return NULL;
10161 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010162 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010163 expr_ty await_primary_var;
10164 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010165 (await_primary_var = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010166 )
10167 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010168 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010169 _res = await_primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010170 goto done;
10171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010172 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010173 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010176 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010177 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010178 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010179 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010180}
10181
10182// await_primary: AWAIT primary | primary
10183static expr_ty
10184await_primary_rule(Parser *p)
10185{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010186 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010187 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010188 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010189 return NULL;
10190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010191 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010192 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10193 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010194 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010196 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010197 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10198 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010199 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010200 return NULL;
10201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010202 int _start_lineno = p->tokens[_mark]->lineno;
10203 UNUSED(_start_lineno); // Only used by EXTRA macro
10204 int _start_col_offset = p->tokens[_mark]->col_offset;
10205 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010206 { // AWAIT primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010207 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010208 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010209 return NULL;
10210 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010211 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010212 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010010213 Token * await_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010214 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010215 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010216 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010217 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010218 )
10219 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010220 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010221 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10222 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010223 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010224 return NULL;
10225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010226 int _end_lineno = _token->end_lineno;
10227 UNUSED(_end_lineno); // Only used by EXTRA macro
10228 int _end_col_offset = _token->end_col_offset;
10229 UNUSED(_end_col_offset); // Only used by EXTRA macro
10230 _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
10231 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010232 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010233 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010234 return NULL;
10235 }
10236 goto done;
10237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010238 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010239 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010241 }
10242 { // primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010243 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010244 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010245 return NULL;
10246 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010247 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010248 expr_ty primary_var;
10249 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010250 (primary_var = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010251 )
10252 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010253 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010254 _res = primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010255 goto done;
10256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010257 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010258 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010261 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010262 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010263 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010264 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010265 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010266}
10267
10268// Left-recursive
10269// primary:
10270// | primary '.' NAME
10271// | primary genexp
10272// | primary '(' arguments? ')'
10273// | primary '[' slices ']'
10274// | atom
10275static expr_ty primary_raw(Parser *);
10276static expr_ty
10277primary_rule(Parser *p)
10278{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010279 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010280 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010281 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10282 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010283 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010285 int _mark = p->mark;
10286 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010287 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010288 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010289 if (tmpvar_7) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010290 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010291 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010293 p->mark = _mark;
10294 void *_raw = primary_raw(p);
10295 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010296 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010297 _resmark = p->mark;
10298 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010300 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010301 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010302 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010303}
10304static expr_ty
10305primary_raw(Parser *p)
10306{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010307 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010308 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010309 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010310 return NULL;
10311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010312 expr_ty _res = NULL;
10313 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010314 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10315 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010317 return NULL;
10318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010319 int _start_lineno = p->tokens[_mark]->lineno;
10320 UNUSED(_start_lineno); // Only used by EXTRA macro
10321 int _start_col_offset = p->tokens[_mark]->col_offset;
10322 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010323 { // primary '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010324 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010325 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010326 return NULL;
10327 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010328 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010329 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010330 expr_ty a;
10331 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010332 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010333 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010334 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010335 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010336 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010337 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010338 )
10339 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010340 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010341 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10342 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010343 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010344 return NULL;
10345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010346 int _end_lineno = _token->end_lineno;
10347 UNUSED(_end_lineno); // Only used by EXTRA macro
10348 int _end_col_offset = _token->end_col_offset;
10349 UNUSED(_end_col_offset); // Only used by EXTRA macro
10350 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10351 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010352 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010353 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010354 return NULL;
10355 }
10356 goto done;
10357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010358 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010359 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010361 }
10362 { // primary genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010363 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010364 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010365 return NULL;
10366 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010367 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010368 expr_ty a;
10369 expr_ty b;
10370 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010371 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010372 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010373 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010374 )
10375 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010376 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010377 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10378 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010379 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010380 return NULL;
10381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010382 int _end_lineno = _token->end_lineno;
10383 UNUSED(_end_lineno); // Only used by EXTRA macro
10384 int _end_col_offset = _token->end_col_offset;
10385 UNUSED(_end_col_offset); // Only used by EXTRA macro
10386 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
10387 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010388 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010389 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010390 return NULL;
10391 }
10392 goto done;
10393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010394 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010395 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010397 }
10398 { // primary '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010399 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010400 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010401 return NULL;
10402 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010403 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010404 Token * _literal;
10405 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010406 expr_ty a;
10407 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010408 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010409 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010410 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010411 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010412 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010413 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010414 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010415 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010416 )
10417 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010418 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010419 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10420 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010421 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010422 return NULL;
10423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010424 int _end_lineno = _token->end_lineno;
10425 UNUSED(_end_lineno); // Only used by EXTRA macro
10426 int _end_col_offset = _token->end_col_offset;
10427 UNUSED(_end_col_offset); // Only used by EXTRA macro
10428 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10429 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010430 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010431 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010432 return NULL;
10433 }
10434 goto done;
10435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010436 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010437 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010439 }
10440 { // primary '[' slices ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010441 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010442 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010443 return NULL;
10444 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010445 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010446 Token * _literal;
10447 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010448 expr_ty a;
10449 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010450 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010451 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010452 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010453 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010454 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010455 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010456 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010457 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010458 )
10459 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010460 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010461 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10462 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010463 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010464 return NULL;
10465 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010466 int _end_lineno = _token->end_lineno;
10467 UNUSED(_end_lineno); // Only used by EXTRA macro
10468 int _end_col_offset = _token->end_col_offset;
10469 UNUSED(_end_col_offset); // Only used by EXTRA macro
10470 _res = _Py_Subscript ( a , b , Load , EXTRA );
10471 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010472 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010474 return NULL;
10475 }
10476 goto done;
10477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010478 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010479 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010481 }
10482 { // atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010483 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010484 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010485 return NULL;
10486 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010487 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010488 expr_ty atom_var;
10489 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010490 (atom_var = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010491 )
10492 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010493 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010494 _res = atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010495 goto done;
10496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010497 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010498 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010501 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010502 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010503 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010504 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010505}
10506
10507// slices: slice !',' | ','.slice+ ','?
10508static expr_ty
10509slices_rule(Parser *p)
10510{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010511 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010512 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010513 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010514 return NULL;
10515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010516 expr_ty _res = NULL;
10517 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010518 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10519 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010521 return NULL;
10522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010523 int _start_lineno = p->tokens[_mark]->lineno;
10524 UNUSED(_start_lineno); // Only used by EXTRA macro
10525 int _start_col_offset = p->tokens[_mark]->col_offset;
10526 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010527 { // slice !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010530 return NULL;
10531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010532 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010533 expr_ty a;
10534 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010535 (a = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010536 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010537 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010538 )
10539 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010540 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010541 _res = a;
10542 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010543 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010545 return NULL;
10546 }
10547 goto done;
10548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010549 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010550 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010552 }
10553 { // ','.slice+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010554 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010555 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010556 return NULL;
10557 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010558 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010559 void *_opt_var;
10560 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010561 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010562 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010563 (a = _gather_94_rule(p)) // ','.slice+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010564 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010565 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010566 )
10567 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010568 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010569 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10570 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010571 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010572 return NULL;
10573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010574 int _end_lineno = _token->end_lineno;
10575 UNUSED(_end_lineno); // Only used by EXTRA macro
10576 int _end_col_offset = _token->end_col_offset;
10577 UNUSED(_end_col_offset); // Only used by EXTRA macro
10578 _res = _Py_Tuple ( a , Load , EXTRA );
10579 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010580 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010581 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010582 return NULL;
10583 }
10584 goto done;
10585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010586 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010587 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010590 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010591 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010592 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010593 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010594}
10595
10596// slice: expression? ':' expression? [':' expression?] | expression
10597static expr_ty
10598slice_rule(Parser *p)
10599{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010600 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010602 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010603 return NULL;
10604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010605 expr_ty _res = NULL;
10606 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010607 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10608 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010609 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010610 return NULL;
10611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010612 int _start_lineno = p->tokens[_mark]->lineno;
10613 UNUSED(_start_lineno); // Only used by EXTRA macro
10614 int _start_col_offset = p->tokens[_mark]->col_offset;
10615 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010616 { // expression? ':' expression? [':' expression?]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010618 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010619 return NULL;
10620 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010621 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010622 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010623 void *a;
10624 void *b;
10625 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010626 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010627 (a = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010628 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010629 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010630 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010631 (b = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010632 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010633 (c = _tmp_96_rule(p), 1) // [':' expression?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010634 )
10635 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010636 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010637 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10638 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010639 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010640 return NULL;
10641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010642 int _end_lineno = _token->end_lineno;
10643 UNUSED(_end_lineno); // Only used by EXTRA macro
10644 int _end_col_offset = _token->end_col_offset;
10645 UNUSED(_end_col_offset); // Only used by EXTRA macro
10646 _res = _Py_Slice ( a , b , c , EXTRA );
10647 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010648 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010649 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010650 return NULL;
10651 }
10652 goto done;
10653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010654 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010655 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010657 }
10658 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010659 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010660 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010661 return NULL;
10662 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010663 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010664 expr_ty a;
10665 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010666 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010667 )
10668 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010669 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010670 _res = a;
10671 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010672 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010673 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010674 return NULL;
10675 }
10676 goto done;
10677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010678 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010679 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010682 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010683 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010684 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010685 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010686}
10687
10688// atom:
10689// | NAME
10690// | 'True'
10691// | 'False'
10692// | 'None'
Pablo Galindo37824972020-06-11 19:29:13 +010010693// | '__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010694// | &STRING strings
10695// | NUMBER
10696// | &'(' (tuple | group | genexp)
10697// | &'[' (list | listcomp)
10698// | &'{' (dict | set | dictcomp | setcomp)
10699// | '...'
10700static expr_ty
10701atom_rule(Parser *p)
10702{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010703 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010704 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010705 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010706 return NULL;
10707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010708 expr_ty _res = NULL;
10709 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010710 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10711 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010712 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010713 return NULL;
10714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010715 int _start_lineno = p->tokens[_mark]->lineno;
10716 UNUSED(_start_lineno); // Only used by EXTRA macro
10717 int _start_col_offset = p->tokens[_mark]->col_offset;
10718 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010719 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010721 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010722 return NULL;
10723 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010724 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010725 expr_ty name_var;
10726 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010727 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010728 )
10729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010730 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010731 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010732 goto done;
10733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010735 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010737 }
10738 { // 'True'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010739 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010740 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010741 return NULL;
10742 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010743 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010744 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010745 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010746 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010747 )
10748 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010749 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010750 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10751 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010752 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010753 return NULL;
10754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010755 int _end_lineno = _token->end_lineno;
10756 UNUSED(_end_lineno); // Only used by EXTRA macro
10757 int _end_col_offset = _token->end_col_offset;
10758 UNUSED(_end_col_offset); // Only used by EXTRA macro
10759 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10760 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010761 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010762 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010763 return NULL;
10764 }
10765 goto done;
10766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010767 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010768 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010770 }
10771 { // 'False'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010773 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010774 return NULL;
10775 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010776 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010777 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010778 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010779 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010780 )
10781 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010782 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010783 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10784 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010785 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010786 return NULL;
10787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010788 int _end_lineno = _token->end_lineno;
10789 UNUSED(_end_lineno); // Only used by EXTRA macro
10790 int _end_col_offset = _token->end_col_offset;
10791 UNUSED(_end_col_offset); // Only used by EXTRA macro
10792 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10793 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010794 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010796 return NULL;
10797 }
10798 goto done;
10799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010800 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010801 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010803 }
10804 { // 'None'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010806 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010807 return NULL;
10808 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010809 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010810 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010811 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010812 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010813 )
10814 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010815 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10817 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010819 return NULL;
10820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010821 int _end_lineno = _token->end_lineno;
10822 UNUSED(_end_lineno); // Only used by EXTRA macro
10823 int _end_col_offset = _token->end_col_offset;
10824 UNUSED(_end_col_offset); // Only used by EXTRA macro
10825 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10826 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010827 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010829 return NULL;
10830 }
10831 goto done;
10832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010833 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010834 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010836 }
Pablo Galindo37824972020-06-11 19:29:13 +010010837 { // '__peg_parser__'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010839 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010840 return NULL;
10841 }
Pablo Galindo37824972020-06-11 19:29:13 +010010842 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010843 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010844 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010845 (_keyword = _PyPegen_expect_token(p, 531)) // token='__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010846 )
10847 {
Pablo Galindo37824972020-06-11 19:29:13 +010010848 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010849 _res = RAISE_SYNTAX_ERROR ( "You found it!" );
10850 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010851 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010852 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010853 return NULL;
10854 }
10855 goto done;
10856 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010857 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010858 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo37824972020-06-11 19:29:13 +010010859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010860 }
10861 { // &STRING strings
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010862 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010863 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010864 return NULL;
10865 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010866 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010867 expr_ty strings_var;
10868 if (
10869 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10870 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010871 (strings_var = strings_rule(p)) // strings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010872 )
10873 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010874 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010875 _res = strings_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010876 goto done;
10877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010878 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010879 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010881 }
10882 { // NUMBER
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010883 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010884 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010885 return NULL;
10886 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010887 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010888 expr_ty number_var;
10889 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010890 (number_var = _PyPegen_number_token(p)) // NUMBER
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010891 )
10892 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010893 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010894 _res = number_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010895 goto done;
10896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010897 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010898 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010900 }
10901 { // &'(' (tuple | group | genexp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010902 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010903 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010904 return NULL;
10905 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010906 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010907 void *_tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010908 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010909 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010910 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010911 (_tmp_97_var = _tmp_97_rule(p)) // tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010912 )
10913 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010914 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010915 _res = _tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010916 goto done;
10917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010918 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010919 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010921 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010922 { // &'[' (list | listcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010923 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010924 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010925 return NULL;
10926 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010927 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010928 void *_tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010929 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010930 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010931 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010932 (_tmp_98_var = _tmp_98_rule(p)) // list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010933 )
10934 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010935 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010936 _res = _tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010937 goto done;
10938 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010939 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010940 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010942 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010943 { // &'{' (dict | set | dictcomp | setcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010944 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010945 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010946 return NULL;
10947 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010948 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010949 void *_tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010950 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010951 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
Pablo Galindo2b74c832020-04-27 18:02:07 +010010952 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010953 (_tmp_99_var = _tmp_99_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo2b74c832020-04-27 18:02:07 +010010954 )
10955 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010956 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010957 _res = _tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010958 goto done;
10959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010960 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010961 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010010963 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010964 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010966 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010967 return NULL;
10968 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010969 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010970 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010971 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010972 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010973 )
10974 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010975 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010976 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10977 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010978 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010979 return NULL;
10980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010981 int _end_lineno = _token->end_lineno;
10982 UNUSED(_end_lineno); // Only used by EXTRA macro
10983 int _end_col_offset = _token->end_col_offset;
10984 UNUSED(_end_col_offset); // Only used by EXTRA macro
10985 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
10986 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010987 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010988 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010989 return NULL;
10990 }
10991 goto done;
10992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010993 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010994 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010997 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010998 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010999 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011000 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011001}
11002
11003// strings: STRING+
11004static expr_ty
11005strings_rule(Parser *p)
11006{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011007 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011008 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011009 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011010 return NULL;
11011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011012 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011013 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
11014 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011015 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011017 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011018 { // STRING+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011019 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011020 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011021 return NULL;
11022 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011023 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011024 asdl_seq * a;
11025 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011026 (a = _loop1_100_rule(p)) // STRING+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011027 )
11028 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011029 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011030 _res = _PyPegen_concatenate_strings ( p , a );
11031 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011032 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011033 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011034 return NULL;
11035 }
11036 goto done;
11037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011038 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011039 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011042 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011043 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011044 _PyPegen_insert_memo(p, _mark, strings_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011045 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011046 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011047}
11048
11049// list: '[' star_named_expressions? ']'
11050static expr_ty
11051list_rule(Parser *p)
11052{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011053 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011054 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011055 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011056 return NULL;
11057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011058 expr_ty _res = NULL;
11059 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011060 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11061 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011062 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011063 return NULL;
11064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011065 int _start_lineno = p->tokens[_mark]->lineno;
11066 UNUSED(_start_lineno); // Only used by EXTRA macro
11067 int _start_col_offset = p->tokens[_mark]->col_offset;
11068 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011069 { // '[' star_named_expressions? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011070 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011071 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011072 return NULL;
11073 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011074 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011075 Token * _literal;
11076 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011077 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011078 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011079 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011080 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011081 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011082 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011083 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011084 )
11085 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011086 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011087 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11088 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011089 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011090 return NULL;
11091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011092 int _end_lineno = _token->end_lineno;
11093 UNUSED(_end_lineno); // Only used by EXTRA macro
11094 int _end_col_offset = _token->end_col_offset;
11095 UNUSED(_end_col_offset); // Only used by EXTRA macro
11096 _res = _Py_List ( a , Load , EXTRA );
11097 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011098 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011099 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011100 return NULL;
11101 }
11102 goto done;
11103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011104 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011105 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011108 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011109 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011110 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011111 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011112}
11113
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011114// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011115static expr_ty
11116listcomp_rule(Parser *p)
11117{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011118 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011119 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011120 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011121 return NULL;
11122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011123 expr_ty _res = NULL;
11124 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011125 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11126 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011128 return NULL;
11129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011130 int _start_lineno = p->tokens[_mark]->lineno;
11131 UNUSED(_start_lineno); // Only used by EXTRA macro
11132 int _start_col_offset = p->tokens[_mark]->col_offset;
11133 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011134 { // '[' named_expression ~ for_if_clauses ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011136 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011137 return NULL;
11138 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011139 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11140 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011141 Token * _literal;
11142 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011143 expr_ty a;
11144 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011145 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011146 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011147 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011148 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011149 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011150 (_cut_var = 1)
11151 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011152 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011153 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011154 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011155 )
11156 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011157 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11159 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011160 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011161 return NULL;
11162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011163 int _end_lineno = _token->end_lineno;
11164 UNUSED(_end_lineno); // Only used by EXTRA macro
11165 int _end_col_offset = _token->end_col_offset;
11166 UNUSED(_end_col_offset); // Only used by EXTRA macro
11167 _res = _Py_ListComp ( a , b , EXTRA );
11168 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011169 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011170 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011171 return NULL;
11172 }
11173 goto done;
11174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011175 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011176 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11178 if (_cut_var) {
11179 D(p->level--);
11180 return NULL;
11181 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011182 }
11183 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011185 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011186 return NULL;
11187 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011188 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011189 void *invalid_comprehension_var;
11190 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011191 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011192 )
11193 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011194 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011195 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011196 goto done;
11197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011198 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011199 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011202 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011203 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011204 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011205 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011206}
11207
11208// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11209static expr_ty
11210tuple_rule(Parser *p)
11211{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011212 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011213 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011214 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011215 return NULL;
11216 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011217 expr_ty _res = NULL;
11218 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011219 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11220 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011221 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011222 return NULL;
11223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011224 int _start_lineno = p->tokens[_mark]->lineno;
11225 UNUSED(_start_lineno); // Only used by EXTRA macro
11226 int _start_col_offset = p->tokens[_mark]->col_offset;
11227 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011228 { // '(' [star_named_expression ',' star_named_expressions?] ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011229 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011230 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011231 return NULL;
11232 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011233 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011234 Token * _literal;
11235 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011236 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011237 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011238 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011239 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011240 (a = _tmp_101_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011241 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011242 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011243 )
11244 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011245 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011246 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11247 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011248 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011249 return NULL;
11250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011251 int _end_lineno = _token->end_lineno;
11252 UNUSED(_end_lineno); // Only used by EXTRA macro
11253 int _end_col_offset = _token->end_col_offset;
11254 UNUSED(_end_col_offset); // Only used by EXTRA macro
11255 _res = _Py_Tuple ( a , Load , EXTRA );
11256 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011257 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011258 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011259 return NULL;
11260 }
11261 goto done;
11262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011263 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011264 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011267 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011268 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011269 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011270 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011271}
11272
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011273// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011274static expr_ty
11275group_rule(Parser *p)
11276{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011277 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011278 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011279 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011280 return NULL;
11281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011282 expr_ty _res = NULL;
11283 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011284 { // '(' (yield_expr | named_expression) ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011286 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011287 return NULL;
11288 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011289 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011290 Token * _literal;
11291 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011292 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011293 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011294 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011295 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011296 (a = _tmp_102_rule(p)) // yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011297 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011298 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011299 )
11300 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011301 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011302 _res = a;
11303 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011304 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011305 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011306 return NULL;
11307 }
11308 goto done;
11309 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011310 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011311 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011313 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011314 { // invalid_group
11315 if (p->error_indicator) {
11316 D(p->level--);
11317 return NULL;
11318 }
11319 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11320 void *invalid_group_var;
11321 if (
11322 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11323 )
11324 {
11325 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11326 _res = invalid_group_var;
11327 goto done;
11328 }
11329 p->mark = _mark;
11330 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011333 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011334 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011335 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011336 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011337}
11338
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011339// genexp: '(' expression ~ for_if_clauses ')' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011340static expr_ty
11341genexp_rule(Parser *p)
11342{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011343 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011344 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011345 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011346 return NULL;
11347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011348 expr_ty _res = NULL;
11349 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011350 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11351 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011352 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011353 return NULL;
11354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011355 int _start_lineno = p->tokens[_mark]->lineno;
11356 UNUSED(_start_lineno); // Only used by EXTRA macro
11357 int _start_col_offset = p->tokens[_mark]->col_offset;
11358 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011359 { // '(' expression ~ for_if_clauses ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011360 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011361 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011362 return NULL;
11363 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011364 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
11365 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011366 Token * _literal;
11367 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011368 expr_ty a;
11369 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011370 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011371 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011372 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011373 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011374 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011375 (_cut_var = 1)
11376 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011377 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011378 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011379 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011380 )
11381 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011382 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011383 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11384 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011386 return NULL;
11387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011388 int _end_lineno = _token->end_lineno;
11389 UNUSED(_end_lineno); // Only used by EXTRA macro
11390 int _end_col_offset = _token->end_col_offset;
11391 UNUSED(_end_col_offset); // Only used by EXTRA macro
11392 _res = _Py_GeneratorExp ( a , b , EXTRA );
11393 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011394 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011395 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011396 return NULL;
11397 }
11398 goto done;
11399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011400 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011401 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
11403 if (_cut_var) {
11404 D(p->level--);
11405 return NULL;
11406 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011407 }
11408 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011410 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011411 return NULL;
11412 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011413 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011414 void *invalid_comprehension_var;
11415 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011416 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011417 )
11418 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011419 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011420 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011421 goto done;
11422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011423 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011424 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011427 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011428 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011429 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011430 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011431}
11432
11433// set: '{' expressions_list '}'
11434static expr_ty
11435set_rule(Parser *p)
11436{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011437 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011438 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011439 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011440 return NULL;
11441 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011442 expr_ty _res = NULL;
11443 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011444 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11445 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011446 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011447 return NULL;
11448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011449 int _start_lineno = p->tokens[_mark]->lineno;
11450 UNUSED(_start_lineno); // Only used by EXTRA macro
11451 int _start_col_offset = p->tokens[_mark]->col_offset;
11452 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011453 { // '{' expressions_list '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011455 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011456 return NULL;
11457 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011458 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011459 Token * _literal;
11460 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011461 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011462 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011463 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011464 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011465 (a = expressions_list_rule(p)) // expressions_list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011466 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011467 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011468 )
11469 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011470 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011471 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11472 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011474 return NULL;
11475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011476 int _end_lineno = _token->end_lineno;
11477 UNUSED(_end_lineno); // Only used by EXTRA macro
11478 int _end_col_offset = _token->end_col_offset;
11479 UNUSED(_end_col_offset); // Only used by EXTRA macro
11480 _res = _Py_Set ( a , EXTRA );
11481 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011482 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011484 return NULL;
11485 }
11486 goto done;
11487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011488 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011489 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
11490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011492 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011493 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011494 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011495 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011496}
11497
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011498// setcomp: '{' expression ~ for_if_clauses '}' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011499static expr_ty
11500setcomp_rule(Parser *p)
11501{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011502 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011505 return NULL;
11506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011507 expr_ty _res = NULL;
11508 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011509 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11510 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011512 return NULL;
11513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011514 int _start_lineno = p->tokens[_mark]->lineno;
11515 UNUSED(_start_lineno); // Only used by EXTRA macro
11516 int _start_col_offset = p->tokens[_mark]->col_offset;
11517 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011518 { // '{' expression ~ for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011520 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011521 return NULL;
11522 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011523 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11524 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011525 Token * _literal;
11526 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011527 expr_ty a;
11528 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011529 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011530 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011531 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011532 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011533 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011534 (_cut_var = 1)
11535 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011536 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011537 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011538 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011539 )
11540 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011541 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011542 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11543 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011545 return NULL;
11546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011547 int _end_lineno = _token->end_lineno;
11548 UNUSED(_end_lineno); // Only used by EXTRA macro
11549 int _end_col_offset = _token->end_col_offset;
11550 UNUSED(_end_col_offset); // Only used by EXTRA macro
11551 _res = _Py_SetComp ( a , b , EXTRA );
11552 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011553 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011555 return NULL;
11556 }
11557 goto done;
11558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011559 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011560 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11562 if (_cut_var) {
11563 D(p->level--);
11564 return NULL;
11565 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011566 }
11567 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011569 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011570 return NULL;
11571 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011572 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011573 void *invalid_comprehension_var;
11574 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011575 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011576 )
11577 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011578 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011579 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011580 goto done;
11581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011582 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011583 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011586 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011587 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011588 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011589 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011590}
11591
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011592// dict: '{' double_starred_kvpairs? '}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011593static expr_ty
11594dict_rule(Parser *p)
11595{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011596 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011598 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011599 return NULL;
11600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011601 expr_ty _res = NULL;
11602 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011603 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11604 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011605 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011606 return NULL;
11607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011608 int _start_lineno = p->tokens[_mark]->lineno;
11609 UNUSED(_start_lineno); // Only used by EXTRA macro
11610 int _start_col_offset = p->tokens[_mark]->col_offset;
11611 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011612 { // '{' double_starred_kvpairs? '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011613 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011614 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011615 return NULL;
11616 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011617 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011618 Token * _literal;
11619 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011620 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011621 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011622 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011623 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011624 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011625 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011626 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011627 )
11628 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011629 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011630 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11631 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011633 return NULL;
11634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011635 int _end_lineno = _token->end_lineno;
11636 UNUSED(_end_lineno); // Only used by EXTRA macro
11637 int _end_col_offset = _token->end_col_offset;
11638 UNUSED(_end_col_offset); // Only used by EXTRA macro
11639 _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
11640 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011641 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011642 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011643 return NULL;
11644 }
11645 goto done;
11646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011647 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011648 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011651 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011652 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011653 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011654 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011655}
11656
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011657// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011658static expr_ty
11659dictcomp_rule(Parser *p)
11660{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011661 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011662 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011663 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011664 return NULL;
11665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011666 expr_ty _res = NULL;
11667 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011668 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11669 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011670 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011671 return NULL;
11672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011673 int _start_lineno = p->tokens[_mark]->lineno;
11674 UNUSED(_start_lineno); // Only used by EXTRA macro
11675 int _start_col_offset = p->tokens[_mark]->col_offset;
11676 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011677 { // '{' kvpair for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011678 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011679 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011680 return NULL;
11681 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011682 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011683 Token * _literal;
11684 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011685 KeyValuePair* a;
11686 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011687 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011688 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011689 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011690 (a = kvpair_rule(p)) // kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011691 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011692 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011693 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011694 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011695 )
11696 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011697 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011698 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11699 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011700 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011701 return NULL;
11702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011703 int _end_lineno = _token->end_lineno;
11704 UNUSED(_end_lineno); // Only used by EXTRA macro
11705 int _end_col_offset = _token->end_col_offset;
11706 UNUSED(_end_col_offset); // Only used by EXTRA macro
11707 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11708 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011709 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011711 return NULL;
11712 }
11713 goto done;
11714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011715 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011716 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011718 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011719 { // invalid_dict_comprehension
11720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011721 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011722 return NULL;
11723 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011724 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011725 void *invalid_dict_comprehension_var;
11726 if (
11727 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11728 )
11729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011730 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011731 _res = invalid_dict_comprehension_var;
11732 goto done;
11733 }
11734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011735 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011738 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011739 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011740 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011741 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011742}
11743
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011744// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011745static asdl_seq*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011746double_starred_kvpairs_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011747{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011748 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011751 return NULL;
11752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011753 asdl_seq* _res = NULL;
11754 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011755 { // ','.double_starred_kvpair+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011756 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011757 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011758 return NULL;
11759 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011760 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011761 void *_opt_var;
11762 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011763 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011764 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011765 (a = _gather_103_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011766 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011767 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011768 )
11769 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011770 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011771 _res = a;
11772 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011773 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011774 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011775 return NULL;
11776 }
11777 goto done;
11778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011779 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011780 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011783 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011784 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011785 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011786 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011787}
11788
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011789// double_starred_kvpair: '**' bitwise_or | kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011790static KeyValuePair*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011791double_starred_kvpair_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011792{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011793 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011796 return NULL;
11797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011798 KeyValuePair* _res = NULL;
11799 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011800 { // '**' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011802 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011803 return NULL;
11804 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011805 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011806 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011807 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011808 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011809 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011810 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011811 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011812 )
11813 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011814 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011815 _res = _PyPegen_key_value_pair ( p , NULL , a );
11816 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011817 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011819 return NULL;
11820 }
11821 goto done;
11822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011823 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011824 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011826 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011827 { // kvpair
11828 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011829 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011830 return NULL;
11831 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011832 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011833 KeyValuePair* kvpair_var;
11834 if (
11835 (kvpair_var = kvpair_rule(p)) // kvpair
11836 )
11837 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011838 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011839 _res = kvpair_var;
11840 goto done;
11841 }
11842 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011843 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011845 }
11846 _res = NULL;
11847 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011848 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011849 return _res;
11850}
11851
11852// kvpair: expression ':' expression
11853static KeyValuePair*
11854kvpair_rule(Parser *p)
11855{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011856 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011857 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011858 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011859 return NULL;
11860 }
11861 KeyValuePair* _res = NULL;
11862 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011863 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011864 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011865 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011866 return NULL;
11867 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011868 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011869 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011870 expr_ty a;
11871 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011872 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011873 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011874 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011875 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011876 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011877 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011878 )
11879 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011880 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011881 _res = _PyPegen_key_value_pair ( p , a , b );
11882 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011883 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011885 return NULL;
11886 }
11887 goto done;
11888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011889 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011890 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011893 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011894 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011895 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011896 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011897}
11898
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011899// for_if_clauses: for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011900static asdl_seq*
11901for_if_clauses_rule(Parser *p)
11902{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011903 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011905 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011906 return NULL;
11907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011908 asdl_seq* _res = NULL;
11909 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011910 { // for_if_clause+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011911 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011912 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011913 return NULL;
11914 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011915 D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011916 asdl_seq * _loop1_105_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011917 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011918 (_loop1_105_var = _loop1_105_rule(p)) // for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011919 )
11920 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011921 D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011922 _res = _loop1_105_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011923 goto done;
11924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011925 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011926 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011929 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011930 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011931 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011932 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011933}
11934
11935// for_if_clause:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011936// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11937// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11938// | invalid_for_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011939static comprehension_ty
11940for_if_clause_rule(Parser *p)
11941{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011942 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011943 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011944 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011945 return NULL;
11946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011947 comprehension_ty _res = NULL;
11948 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011949 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011951 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011952 return NULL;
11953 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011954 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11955 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011956 Token * _keyword;
11957 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011958 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010011959 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011960 expr_ty b;
11961 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011962 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011963 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011964 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011965 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011966 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011967 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011968 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011969 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011970 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011971 (_cut_var = 1)
11972 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011973 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011974 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011975 (c = _loop0_106_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011976 )
11977 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011978 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))*"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011979 _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
11980 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011981 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011982 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011983 return NULL;
11984 }
11985 goto done;
11986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011987 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011988 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11990 if (_cut_var) {
11991 D(p->level--);
11992 return NULL;
11993 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011994 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011995 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011996 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011997 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011998 return NULL;
11999 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012000 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12001 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012002 Token * _keyword;
12003 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012004 expr_ty a;
12005 expr_ty b;
12006 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012007 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012008 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012009 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012010 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012011 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012012 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012013 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012014 (_cut_var = 1)
12015 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012016 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012017 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012018 (c = _loop0_107_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012019 )
12020 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012021 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 Galindoac7a92c2020-05-10 05:34:50 +010012022 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12023 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012024 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012025 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012026 return NULL;
12027 }
12028 goto done;
12029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012030 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012031 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12033 if (_cut_var) {
12034 D(p->level--);
12035 return NULL;
12036 }
12037 }
12038 { // invalid_for_target
12039 if (p->error_indicator) {
12040 D(p->level--);
12041 return NULL;
12042 }
12043 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12044 void *invalid_for_target_var;
12045 if (
12046 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12047 )
12048 {
12049 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12050 _res = invalid_for_target_var;
12051 goto done;
12052 }
12053 p->mark = _mark;
12054 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012057 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012058 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012059 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012060 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012061}
12062
12063// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12064static expr_ty
12065yield_expr_rule(Parser *p)
12066{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012067 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012068 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012069 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012070 return NULL;
12071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012072 expr_ty _res = NULL;
12073 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012074 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12075 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012076 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012077 return NULL;
12078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012079 int _start_lineno = p->tokens[_mark]->lineno;
12080 UNUSED(_start_lineno); // Only used by EXTRA macro
12081 int _start_col_offset = p->tokens[_mark]->col_offset;
12082 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012083 { // 'yield' 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012085 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012086 return NULL;
12087 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012088 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012089 Token * _keyword;
12090 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012091 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012092 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012093 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012094 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012095 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012096 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012097 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012098 )
12099 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012100 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012101 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12102 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012103 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012104 return NULL;
12105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012106 int _end_lineno = _token->end_lineno;
12107 UNUSED(_end_lineno); // Only used by EXTRA macro
12108 int _end_col_offset = _token->end_col_offset;
12109 UNUSED(_end_col_offset); // Only used by EXTRA macro
12110 _res = _Py_YieldFrom ( a , EXTRA );
12111 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012112 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012114 return NULL;
12115 }
12116 goto done;
12117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012118 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012119 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012121 }
12122 { // 'yield' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012124 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012125 return NULL;
12126 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012127 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012128 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012129 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012130 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012131 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012132 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012133 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012134 )
12135 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012136 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012137 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12138 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012139 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012140 return NULL;
12141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012142 int _end_lineno = _token->end_lineno;
12143 UNUSED(_end_lineno); // Only used by EXTRA macro
12144 int _end_col_offset = _token->end_col_offset;
12145 UNUSED(_end_col_offset); // Only used by EXTRA macro
12146 _res = _Py_Yield ( a , EXTRA );
12147 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012148 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012149 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012150 return NULL;
12151 }
12152 goto done;
12153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012154 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012155 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012158 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012159 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012160 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012161 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012162}
12163
12164// arguments: args ','? &')' | incorrect_arguments
12165static expr_ty
12166arguments_rule(Parser *p)
12167{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012168 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012169 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012170 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012171 return NULL;
12172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012173 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012174 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12175 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012176 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012178 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012179 { // args ','? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012181 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012182 return NULL;
12183 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012184 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012185 void *_opt_var;
12186 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012187 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012188 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012189 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012190 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012191 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012192 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012193 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012194 )
12195 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012196 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012197 _res = a;
12198 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012199 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012200 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012201 return NULL;
12202 }
12203 goto done;
12204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012205 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012206 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012208 }
12209 { // incorrect_arguments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012210 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012211 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012212 return NULL;
12213 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012214 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012215 void *incorrect_arguments_var;
12216 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012217 (incorrect_arguments_var = incorrect_arguments_rule(p)) // incorrect_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012218 )
12219 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012220 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012221 _res = incorrect_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012222 goto done;
12223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012224 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012225 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012228 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012229 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012230 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012231 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012232 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012233}
12234
12235// args: starred_expression [',' args] | kwargs | named_expression [',' args]
12236static expr_ty
12237args_rule(Parser *p)
12238{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012239 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012240 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012241 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012242 return NULL;
12243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012244 expr_ty _res = NULL;
12245 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012246 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12247 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012248 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012249 return NULL;
12250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012251 int _start_lineno = p->tokens[_mark]->lineno;
12252 UNUSED(_start_lineno); // Only used by EXTRA macro
12253 int _start_col_offset = p->tokens[_mark]->col_offset;
12254 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012255 { // starred_expression [',' args]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012256 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012257 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012258 return NULL;
12259 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012260 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012261 expr_ty a;
12262 void *b;
12263 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012264 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012265 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012266 (b = _tmp_108_rule(p), 1) // [',' args]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012267 )
12268 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012269 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012270 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12271 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012272 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012273 return NULL;
12274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012275 int _end_lineno = _token->end_lineno;
12276 UNUSED(_end_lineno); // Only used by EXTRA macro
12277 int _end_col_offset = _token->end_col_offset;
12278 UNUSED(_end_col_offset); // Only used by EXTRA macro
12279 _res = _Py_Call ( _PyPegen_dummy_name ( p ) , ( b ) ? CHECK ( _PyPegen_seq_insert_in_front ( p , a , ( ( expr_ty ) b ) -> v . Call . args ) ) : CHECK ( _PyPegen_singleton_seq ( p , a ) ) , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
12280 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012281 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012282 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012283 return NULL;
12284 }
12285 goto done;
12286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012287 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012288 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012290 }
12291 { // kwargs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012292 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012293 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012294 return NULL;
12295 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012296 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012297 asdl_seq* a;
12298 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012299 (a = kwargs_rule(p)) // kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012300 )
12301 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012302 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012303 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12304 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012305 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012306 return NULL;
12307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012308 int _end_lineno = _token->end_lineno;
12309 UNUSED(_end_lineno); // Only used by EXTRA macro
12310 int _end_col_offset = _token->end_col_offset;
12311 UNUSED(_end_col_offset); // Only used by EXTRA macro
12312 _res = _Py_Call ( _PyPegen_dummy_name ( p ) , CHECK_NULL_ALLOWED ( _PyPegen_seq_extract_starred_exprs ( p , a ) ) , CHECK_NULL_ALLOWED ( _PyPegen_seq_delete_starred_exprs ( p , a ) ) , EXTRA );
12313 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012314 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012315 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012316 return NULL;
12317 }
12318 goto done;
12319 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012320 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012321 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012323 }
12324 { // named_expression [',' args]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012325 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012326 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012327 return NULL;
12328 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012329 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012330 expr_ty a;
12331 void *b;
12332 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012333 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012334 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012335 (b = _tmp_109_rule(p), 1) // [',' args]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012336 )
12337 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012338 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012339 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12340 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012341 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012342 return NULL;
12343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012344 int _end_lineno = _token->end_lineno;
12345 UNUSED(_end_lineno); // Only used by EXTRA macro
12346 int _end_col_offset = _token->end_col_offset;
12347 UNUSED(_end_col_offset); // Only used by EXTRA macro
12348 _res = _Py_Call ( _PyPegen_dummy_name ( p ) , ( b ) ? CHECK ( _PyPegen_seq_insert_in_front ( p , a , ( ( expr_ty ) b ) -> v . Call . args ) ) : CHECK ( _PyPegen_singleton_seq ( p , a ) ) , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
12349 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012350 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012351 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012352 return NULL;
12353 }
12354 goto done;
12355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012356 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012357 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012359 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012360 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012361 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012362 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012363 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012364}
12365
12366// kwargs:
12367// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12368// | ','.kwarg_or_starred+
12369// | ','.kwarg_or_double_starred+
12370static asdl_seq*
12371kwargs_rule(Parser *p)
12372{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012373 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012374 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012375 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012376 return NULL;
12377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012378 asdl_seq* _res = NULL;
12379 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012380 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012381 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012382 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012383 return NULL;
12384 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012385 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012386 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012387 asdl_seq * a;
12388 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012389 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012390 (a = _gather_110_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012391 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012392 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012393 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012394 (b = _gather_112_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012395 )
12396 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012397 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012398 _res = _PyPegen_join_sequences ( p , a , b );
12399 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012400 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012402 return NULL;
12403 }
12404 goto done;
12405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012406 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012407 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012409 }
12410 { // ','.kwarg_or_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012411 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012412 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012413 return NULL;
12414 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012415 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012416 asdl_seq * _gather_114_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012417 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012418 (_gather_114_var = _gather_114_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012419 )
12420 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012421 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012422 _res = _gather_114_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012423 goto done;
12424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012425 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012426 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012428 }
12429 { // ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012430 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012431 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012432 return NULL;
12433 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012434 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012435 asdl_seq * _gather_116_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012436 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012437 (_gather_116_var = _gather_116_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012438 )
12439 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012440 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012441 _res = _gather_116_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012442 goto done;
12443 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012444 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012445 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012447 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012448 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012449 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012450 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012451 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012452}
12453
12454// starred_expression: '*' expression
12455static expr_ty
12456starred_expression_rule(Parser *p)
12457{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012458 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012461 return NULL;
12462 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012463 expr_ty _res = NULL;
12464 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012465 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12466 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012467 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012468 return NULL;
12469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012470 int _start_lineno = p->tokens[_mark]->lineno;
12471 UNUSED(_start_lineno); // Only used by EXTRA macro
12472 int _start_col_offset = p->tokens[_mark]->col_offset;
12473 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012474 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012475 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012476 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012477 return NULL;
12478 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012479 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012480 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012481 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012482 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012483 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012484 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012485 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012486 )
12487 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012488 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012489 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12490 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012491 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012492 return NULL;
12493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012494 int _end_lineno = _token->end_lineno;
12495 UNUSED(_end_lineno); // Only used by EXTRA macro
12496 int _end_col_offset = _token->end_col_offset;
12497 UNUSED(_end_col_offset); // Only used by EXTRA macro
12498 _res = _Py_Starred ( a , Load , EXTRA );
12499 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012500 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012501 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012502 return NULL;
12503 }
12504 goto done;
12505 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012506 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012507 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012510 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012511 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012512 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012513 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012514}
12515
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012516// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012517static KeywordOrStarred*
12518kwarg_or_starred_rule(Parser *p)
12519{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012520 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012521 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012522 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012523 return NULL;
12524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012525 KeywordOrStarred* _res = NULL;
12526 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012527 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12528 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012529 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012530 return NULL;
12531 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012532 int _start_lineno = p->tokens[_mark]->lineno;
12533 UNUSED(_start_lineno); // Only used by EXTRA macro
12534 int _start_col_offset = p->tokens[_mark]->col_offset;
12535 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012536 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012537 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012538 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012539 return NULL;
12540 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012541 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012542 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012543 expr_ty a;
12544 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012545 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012546 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012547 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012548 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012549 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012550 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012551 )
12552 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012553 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012554 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12555 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012556 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012557 return NULL;
12558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012559 int _end_lineno = _token->end_lineno;
12560 UNUSED(_end_lineno); // Only used by EXTRA macro
12561 int _end_col_offset = _token->end_col_offset;
12562 UNUSED(_end_col_offset); // Only used by EXTRA macro
12563 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12564 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012565 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012566 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012567 return NULL;
12568 }
12569 goto done;
12570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012571 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012572 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012574 }
12575 { // starred_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012578 return NULL;
12579 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012580 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012581 expr_ty a;
12582 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012583 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012584 )
12585 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012586 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012587 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12588 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012589 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012590 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012591 return NULL;
12592 }
12593 goto done;
12594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012595 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012596 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012598 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012599 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012600 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012601 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012602 return NULL;
12603 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012604 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012605 void *invalid_kwarg_var;
12606 if (
12607 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12608 )
12609 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012610 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012611 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012612 goto done;
12613 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012614 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012615 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012618 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012619 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012620 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012621 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012622}
12623
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012624// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012625static KeywordOrStarred*
12626kwarg_or_double_starred_rule(Parser *p)
12627{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012628 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012629 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012631 return NULL;
12632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012633 KeywordOrStarred* _res = NULL;
12634 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012635 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12636 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012637 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012638 return NULL;
12639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012640 int _start_lineno = p->tokens[_mark]->lineno;
12641 UNUSED(_start_lineno); // Only used by EXTRA macro
12642 int _start_col_offset = p->tokens[_mark]->col_offset;
12643 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012644 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012645 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012646 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012647 return NULL;
12648 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012649 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012650 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012651 expr_ty a;
12652 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012653 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012654 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012655 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012656 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012657 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012658 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012659 )
12660 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012661 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012662 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12663 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012665 return NULL;
12666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012667 int _end_lineno = _token->end_lineno;
12668 UNUSED(_end_lineno); // Only used by EXTRA macro
12669 int _end_col_offset = _token->end_col_offset;
12670 UNUSED(_end_col_offset); // Only used by EXTRA macro
12671 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12672 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012673 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012675 return NULL;
12676 }
12677 goto done;
12678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012679 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012680 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012682 }
12683 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012684 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012685 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012686 return NULL;
12687 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012688 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012689 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012690 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012691 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012692 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012693 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012694 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012695 )
12696 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012697 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012698 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12699 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012700 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012701 return NULL;
12702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012703 int _end_lineno = _token->end_lineno;
12704 UNUSED(_end_lineno); // Only used by EXTRA macro
12705 int _end_col_offset = _token->end_col_offset;
12706 UNUSED(_end_col_offset); // Only used by EXTRA macro
12707 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
12708 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012709 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012711 return NULL;
12712 }
12713 goto done;
12714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012715 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012716 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012718 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012719 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012721 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012722 return NULL;
12723 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012724 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012725 void *invalid_kwarg_var;
12726 if (
12727 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12728 )
12729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012730 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012731 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012732 goto done;
12733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012735 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012738 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012739 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012740 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012741 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012742}
12743
12744// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12745static expr_ty
12746star_targets_rule(Parser *p)
12747{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012748 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012751 return NULL;
12752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012753 expr_ty _res = NULL;
12754 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012755 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12756 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012757 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012758 return NULL;
12759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012760 int _start_lineno = p->tokens[_mark]->lineno;
12761 UNUSED(_start_lineno); // Only used by EXTRA macro
12762 int _start_col_offset = p->tokens[_mark]->col_offset;
12763 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012764 { // star_target !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012765 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012766 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012767 return NULL;
12768 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012769 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012770 expr_ty a;
12771 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012772 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012773 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012774 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012775 )
12776 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012777 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012778 _res = a;
12779 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012780 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012782 return NULL;
12783 }
12784 goto done;
12785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012786 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012787 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012789 }
12790 { // star_target ((',' star_target))* ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012792 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012793 return NULL;
12794 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012795 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012796 void *_opt_var;
12797 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012798 expr_ty a;
12799 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012800 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012801 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012802 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012803 (b = _loop0_118_rule(p)) // ((',' star_target))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012804 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012805 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012806 )
12807 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012808 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012809 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12810 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012811 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012812 return NULL;
12813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012814 int _end_lineno = _token->end_lineno;
12815 UNUSED(_end_lineno); // Only used by EXTRA macro
12816 int _end_col_offset = _token->end_col_offset;
12817 UNUSED(_end_col_offset); // Only used by EXTRA macro
12818 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
12819 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012820 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012821 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012822 return NULL;
12823 }
12824 goto done;
12825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012826 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012827 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012830 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012831 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012832 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012833 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012834}
12835
12836// star_targets_seq: ','.star_target+ ','?
12837static asdl_seq*
12838star_targets_seq_rule(Parser *p)
12839{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012840 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012842 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012843 return NULL;
12844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012845 asdl_seq* _res = NULL;
12846 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012847 { // ','.star_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012849 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012850 return NULL;
12851 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012852 D(fprintf(stderr, "%*c> star_targets_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012853 void *_opt_var;
12854 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012855 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012856 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012857 (a = _gather_119_rule(p)) // ','.star_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012858 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012859 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012860 )
12861 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012862 D(fprintf(stderr, "%*c+ star_targets_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012863 _res = a;
12864 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012865 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012867 return NULL;
12868 }
12869 goto done;
12870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012871 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012872 D(fprintf(stderr, "%*c%s star_targets_seq[%d-%d]: %s failed!\n", p->level, ' ',
12873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012875 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012876 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012877 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012878 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012879}
12880
12881// star_target:
12882// | '*' (!'*' star_target)
12883// | t_primary '.' NAME !t_lookahead
12884// | t_primary '[' slices ']' !t_lookahead
12885// | star_atom
12886static expr_ty
12887star_target_rule(Parser *p)
12888{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012889 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012890 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012891 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012892 return NULL;
12893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012894 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012895 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12896 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012897 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012899 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012900 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12901 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012902 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012903 return NULL;
12904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012905 int _start_lineno = p->tokens[_mark]->lineno;
12906 UNUSED(_start_lineno); // Only used by EXTRA macro
12907 int _start_col_offset = p->tokens[_mark]->col_offset;
12908 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012909 { // '*' (!'*' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012911 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012912 return NULL;
12913 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012914 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012915 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012916 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012917 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012918 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012919 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012920 (a = _tmp_121_rule(p)) // !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012921 )
12922 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012923 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012924 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12925 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012926 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012927 return NULL;
12928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012929 int _end_lineno = _token->end_lineno;
12930 UNUSED(_end_lineno); // Only used by EXTRA macro
12931 int _end_col_offset = _token->end_col_offset;
12932 UNUSED(_end_col_offset); // Only used by EXTRA macro
12933 _res = _Py_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
12934 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012935 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012936 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012937 return NULL;
12938 }
12939 goto done;
12940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012941 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012942 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012944 }
12945 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012946 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012947 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012948 return NULL;
12949 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012950 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012951 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012952 expr_ty a;
12953 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012954 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012955 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012956 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012957 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012958 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012959 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012960 &&
12961 _PyPegen_lookahead(0, t_lookahead_rule, p)
12962 )
12963 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012964 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012965 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12966 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012967 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012968 return NULL;
12969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012970 int _end_lineno = _token->end_lineno;
12971 UNUSED(_end_lineno); // Only used by EXTRA macro
12972 int _end_col_offset = _token->end_col_offset;
12973 UNUSED(_end_col_offset); // Only used by EXTRA macro
12974 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
12975 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012976 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012977 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012978 return NULL;
12979 }
12980 goto done;
12981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012982 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012983 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012985 }
12986 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012987 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012988 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012989 return NULL;
12990 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012991 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012992 Token * _literal;
12993 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012994 expr_ty a;
12995 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012996 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012997 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012998 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012999 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013000 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013001 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013002 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013003 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013004 &&
13005 _PyPegen_lookahead(0, t_lookahead_rule, p)
13006 )
13007 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013008 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013009 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13010 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013012 return NULL;
13013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013014 int _end_lineno = _token->end_lineno;
13015 UNUSED(_end_lineno); // Only used by EXTRA macro
13016 int _end_col_offset = _token->end_col_offset;
13017 UNUSED(_end_col_offset); // Only used by EXTRA macro
13018 _res = _Py_Subscript ( a , b , Store , EXTRA );
13019 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013020 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013021 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013022 return NULL;
13023 }
13024 goto done;
13025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013026 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013027 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013029 }
13030 { // star_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013031 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013032 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013033 return NULL;
13034 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013035 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013036 expr_ty star_atom_var;
13037 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013038 (star_atom_var = star_atom_rule(p)) // star_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013039 )
13040 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013041 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013042 _res = star_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013043 goto done;
13044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013045 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013046 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013049 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013050 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013051 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013052 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013053 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013054}
13055
13056// star_atom:
13057// | NAME
13058// | '(' star_target ')'
13059// | '(' star_targets_seq? ')'
13060// | '[' star_targets_seq? ']'
13061static expr_ty
13062star_atom_rule(Parser *p)
13063{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013064 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013067 return NULL;
13068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013069 expr_ty _res = NULL;
13070 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013071 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13072 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013073 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013074 return NULL;
13075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013076 int _start_lineno = p->tokens[_mark]->lineno;
13077 UNUSED(_start_lineno); // Only used by EXTRA macro
13078 int _start_col_offset = p->tokens[_mark]->col_offset;
13079 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013080 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013081 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013082 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013083 return NULL;
13084 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013085 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013086 expr_ty a;
13087 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013088 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013089 )
13090 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013091 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013092 _res = _PyPegen_set_expr_context ( p , a , Store );
13093 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013094 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013095 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013096 return NULL;
13097 }
13098 goto done;
13099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013100 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013101 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013103 }
13104 { // '(' star_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013105 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013106 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013107 return NULL;
13108 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013109 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013110 Token * _literal;
13111 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013112 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013113 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013114 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013115 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013116 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013117 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013118 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013119 )
13120 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013121 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013122 _res = _PyPegen_set_expr_context ( p , a , Store );
13123 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013124 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013126 return NULL;
13127 }
13128 goto done;
13129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013130 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013131 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013133 }
13134 { // '(' star_targets_seq? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013136 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013137 return NULL;
13138 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013139 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013140 Token * _literal;
13141 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013142 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013143 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013144 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013145 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013146 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013147 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013148 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013149 )
13150 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013151 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013152 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13153 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013154 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013155 return NULL;
13156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013157 int _end_lineno = _token->end_lineno;
13158 UNUSED(_end_lineno); // Only used by EXTRA macro
13159 int _end_col_offset = _token->end_col_offset;
13160 UNUSED(_end_col_offset); // Only used by EXTRA macro
13161 _res = _Py_Tuple ( a , Store , EXTRA );
13162 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013163 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013164 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013165 return NULL;
13166 }
13167 goto done;
13168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013169 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013170 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013172 }
13173 { // '[' star_targets_seq? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013174 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013175 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013176 return NULL;
13177 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013178 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013179 Token * _literal;
13180 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013181 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013182 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013183 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013184 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013185 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013186 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013187 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013188 )
13189 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013190 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013191 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13192 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013193 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013194 return NULL;
13195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013196 int _end_lineno = _token->end_lineno;
13197 UNUSED(_end_lineno); // Only used by EXTRA macro
13198 int _end_col_offset = _token->end_col_offset;
13199 UNUSED(_end_col_offset); // Only used by EXTRA macro
13200 _res = _Py_List ( a , Store , EXTRA );
13201 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013202 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013204 return NULL;
13205 }
13206 goto done;
13207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013208 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013209 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013212 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013213 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013214 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013215 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013216}
13217
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013218// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013219static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013220single_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013221{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013222 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013224 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013225 return NULL;
13226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013227 expr_ty _res = NULL;
13228 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013229 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013230 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013231 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013232 return NULL;
13233 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013234 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013235 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013236 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013237 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013238 )
13239 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013240 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013241 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013242 goto done;
13243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013244 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013245 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013247 }
13248 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013249 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013250 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013251 return NULL;
13252 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013253 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013254 expr_ty a;
13255 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013256 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013257 )
13258 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013259 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013260 _res = _PyPegen_set_expr_context ( p , a , Store );
13261 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013262 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013263 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013264 return NULL;
13265 }
13266 goto done;
13267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013268 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013269 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013271 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013272 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013273 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013274 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013275 return NULL;
13276 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013277 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013278 Token * _literal;
13279 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013280 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013281 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013282 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013283 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013284 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013285 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013286 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013287 )
13288 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013289 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013290 _res = a;
13291 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013292 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013293 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013294 return NULL;
13295 }
13296 goto done;
13297 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013298 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013299 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013302 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013303 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013304 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013305 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013306}
13307
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013308// single_subscript_attribute_target:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013309// | t_primary '.' NAME !t_lookahead
13310// | t_primary '[' slices ']' !t_lookahead
13311static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013312single_subscript_attribute_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013313{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013314 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013315 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013317 return NULL;
13318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013319 expr_ty _res = NULL;
13320 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013321 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13322 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013323 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013324 return NULL;
13325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013326 int _start_lineno = p->tokens[_mark]->lineno;
13327 UNUSED(_start_lineno); // Only used by EXTRA macro
13328 int _start_col_offset = p->tokens[_mark]->col_offset;
13329 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013330 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013331 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013332 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013333 return NULL;
13334 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013335 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013336 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013337 expr_ty a;
13338 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013339 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013340 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013341 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013342 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013343 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013344 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013345 &&
13346 _PyPegen_lookahead(0, t_lookahead_rule, p)
13347 )
13348 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013349 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013350 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13351 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013352 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013353 return NULL;
13354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013355 int _end_lineno = _token->end_lineno;
13356 UNUSED(_end_lineno); // Only used by EXTRA macro
13357 int _end_col_offset = _token->end_col_offset;
13358 UNUSED(_end_col_offset); // Only used by EXTRA macro
13359 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13360 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013361 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013363 return NULL;
13364 }
13365 goto done;
13366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013367 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013368 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013370 }
13371 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013372 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013373 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013374 return NULL;
13375 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013376 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013377 Token * _literal;
13378 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013379 expr_ty a;
13380 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013381 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013382 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013383 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013384 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013385 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013386 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013387 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013388 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013389 &&
13390 _PyPegen_lookahead(0, t_lookahead_rule, p)
13391 )
13392 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013393 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013394 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13395 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013396 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013397 return NULL;
13398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013399 int _end_lineno = _token->end_lineno;
13400 UNUSED(_end_lineno); // Only used by EXTRA macro
13401 int _end_col_offset = _token->end_col_offset;
13402 UNUSED(_end_col_offset); // Only used by EXTRA macro
13403 _res = _Py_Subscript ( a , b , Store , EXTRA );
13404 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013405 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013407 return NULL;
13408 }
13409 goto done;
13410 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013411 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013412 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013415 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013416 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013417 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013418 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013419}
13420
13421// del_targets: ','.del_target+ ','?
13422static asdl_seq*
13423del_targets_rule(Parser *p)
13424{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013425 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013426 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013427 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013428 return NULL;
13429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013430 asdl_seq* _res = NULL;
13431 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013432 { // ','.del_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013433 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013434 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013435 return NULL;
13436 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013437 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013438 void *_opt_var;
13439 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013440 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013441 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013442 (a = _gather_122_rule(p)) // ','.del_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013443 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013444 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013445 )
13446 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013447 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013448 _res = a;
13449 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013450 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013451 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013452 return NULL;
13453 }
13454 goto done;
13455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013456 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013457 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013460 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013461 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013462 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013463 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013464}
13465
13466// del_target:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013467// | t_primary '.' NAME !t_lookahead
13468// | t_primary '[' slices ']' !t_lookahead
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013469// | del_t_atom
13470static expr_ty
13471del_target_rule(Parser *p)
13472{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013473 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013474 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013475 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013476 return NULL;
13477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013478 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013479 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13480 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013481 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013483 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013484 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13485 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013486 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013487 return NULL;
13488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013489 int _start_lineno = p->tokens[_mark]->lineno;
13490 UNUSED(_start_lineno); // Only used by EXTRA macro
13491 int _start_col_offset = p->tokens[_mark]->col_offset;
13492 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013493 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013494 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013495 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013496 return NULL;
13497 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013498 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013499 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013500 expr_ty a;
13501 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013502 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013503 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013504 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013505 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013506 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013507 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013508 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013509 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013510 )
13511 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013512 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013513 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13514 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013515 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013516 return NULL;
13517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013518 int _end_lineno = _token->end_lineno;
13519 UNUSED(_end_lineno); // Only used by EXTRA macro
13520 int _end_col_offset = _token->end_col_offset;
13521 UNUSED(_end_col_offset); // Only used by EXTRA macro
13522 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13523 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013524 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013525 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013526 return NULL;
13527 }
13528 goto done;
13529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013530 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013531 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013533 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013534 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013535 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013536 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013537 return NULL;
13538 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013539 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013540 Token * _literal;
13541 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013542 expr_ty a;
13543 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013544 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013545 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013546 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013547 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013548 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013549 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013550 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013551 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013552 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013553 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013554 )
13555 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013556 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013557 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13558 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013560 return NULL;
13561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013562 int _end_lineno = _token->end_lineno;
13563 UNUSED(_end_lineno); // Only used by EXTRA macro
13564 int _end_col_offset = _token->end_col_offset;
13565 UNUSED(_end_col_offset); // Only used by EXTRA macro
13566 _res = _Py_Subscript ( a , b , Del , EXTRA );
13567 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013568 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013569 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013570 return NULL;
13571 }
13572 goto done;
13573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013574 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013575 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013577 }
13578 { // del_t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013580 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013581 return NULL;
13582 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013583 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013584 expr_ty del_t_atom_var;
13585 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013586 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013587 )
13588 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013589 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013590 _res = del_t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013591 goto done;
13592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013593 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013594 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013597 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013598 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013599 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013600 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013601 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013602}
13603
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013604// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013605static expr_ty
13606del_t_atom_rule(Parser *p)
13607{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013608 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013609 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013610 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013611 return NULL;
13612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013613 expr_ty _res = NULL;
13614 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013615 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13616 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013617 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013618 return NULL;
13619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013620 int _start_lineno = p->tokens[_mark]->lineno;
13621 UNUSED(_start_lineno); // Only used by EXTRA macro
13622 int _start_col_offset = p->tokens[_mark]->col_offset;
13623 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013624 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013625 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013626 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013627 return NULL;
13628 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013629 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013630 expr_ty a;
13631 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013632 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013633 )
13634 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013635 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013636 _res = _PyPegen_set_expr_context ( p , a , Del );
13637 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013638 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013639 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013640 return NULL;
13641 }
13642 goto done;
13643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013644 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013645 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013647 }
13648 { // '(' del_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013649 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013650 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013651 return NULL;
13652 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013653 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013654 Token * _literal;
13655 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013656 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013657 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013658 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013659 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013660 (a = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013661 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013662 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013663 )
13664 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013665 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013666 _res = _PyPegen_set_expr_context ( p , a , Del );
13667 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013668 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013669 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013670 return NULL;
13671 }
13672 goto done;
13673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013674 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013675 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013677 }
13678 { // '(' del_targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013679 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013680 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013681 return NULL;
13682 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013683 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013684 Token * _literal;
13685 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013686 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013687 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013688 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013689 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013690 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013691 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013692 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013693 )
13694 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013695 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13697 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013698 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013699 return NULL;
13700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013701 int _end_lineno = _token->end_lineno;
13702 UNUSED(_end_lineno); // Only used by EXTRA macro
13703 int _end_col_offset = _token->end_col_offset;
13704 UNUSED(_end_col_offset); // Only used by EXTRA macro
13705 _res = _Py_Tuple ( a , Del , EXTRA );
13706 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013707 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013709 return NULL;
13710 }
13711 goto done;
13712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013713 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013714 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013716 }
13717 { // '[' del_targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013719 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013720 return NULL;
13721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013722 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013723 Token * _literal;
13724 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013725 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013726 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013727 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013728 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013729 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013730 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013731 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013732 )
13733 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013734 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013735 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13736 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013737 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013738 return NULL;
13739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013740 int _end_lineno = _token->end_lineno;
13741 UNUSED(_end_lineno); // Only used by EXTRA macro
13742 int _end_col_offset = _token->end_col_offset;
13743 UNUSED(_end_col_offset); // Only used by EXTRA macro
13744 _res = _Py_List ( a , Del , EXTRA );
13745 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013746 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013747 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013748 return NULL;
13749 }
13750 goto done;
13751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013752 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013753 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013756 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013757 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013758 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013759 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013760}
13761
13762// targets: ','.target+ ','?
13763static asdl_seq*
13764targets_rule(Parser *p)
13765{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013766 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013768 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013769 return NULL;
13770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013771 asdl_seq* _res = NULL;
13772 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013773 { // ','.target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013774 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013775 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013776 return NULL;
13777 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013778 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013779 void *_opt_var;
13780 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013781 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013782 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013783 (a = _gather_124_rule(p)) // ','.target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013784 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013785 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013786 )
13787 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013788 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013789 _res = a;
13790 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013791 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013792 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013793 return NULL;
13794 }
13795 goto done;
13796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013797 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013798 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013801 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013802 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013803 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013804 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013805}
13806
13807// target:
13808// | t_primary '.' NAME !t_lookahead
13809// | t_primary '[' slices ']' !t_lookahead
13810// | t_atom
13811static expr_ty
13812target_rule(Parser *p)
13813{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013814 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013815 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013816 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013817 return NULL;
13818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013819 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013820 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13821 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013822 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013824 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013825 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13826 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013827 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013828 return NULL;
13829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013830 int _start_lineno = p->tokens[_mark]->lineno;
13831 UNUSED(_start_lineno); // Only used by EXTRA macro
13832 int _start_col_offset = p->tokens[_mark]->col_offset;
13833 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013834 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013835 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013836 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013837 return NULL;
13838 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013839 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013840 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013841 expr_ty a;
13842 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013843 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013844 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013845 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013846 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013847 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013848 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013849 &&
13850 _PyPegen_lookahead(0, t_lookahead_rule, p)
13851 )
13852 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013853 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013854 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13855 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013856 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013857 return NULL;
13858 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013859 int _end_lineno = _token->end_lineno;
13860 UNUSED(_end_lineno); // Only used by EXTRA macro
13861 int _end_col_offset = _token->end_col_offset;
13862 UNUSED(_end_col_offset); // Only used by EXTRA macro
13863 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13864 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013865 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013867 return NULL;
13868 }
13869 goto done;
13870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013871 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013872 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013874 }
13875 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013876 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013877 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013878 return NULL;
13879 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013880 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013881 Token * _literal;
13882 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013883 expr_ty a;
13884 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013885 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013886 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013887 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013888 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013889 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013890 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013891 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013892 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013893 &&
13894 _PyPegen_lookahead(0, t_lookahead_rule, p)
13895 )
13896 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013897 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013898 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13899 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013901 return NULL;
13902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013903 int _end_lineno = _token->end_lineno;
13904 UNUSED(_end_lineno); // Only used by EXTRA macro
13905 int _end_col_offset = _token->end_col_offset;
13906 UNUSED(_end_col_offset); // Only used by EXTRA macro
13907 _res = _Py_Subscript ( a , b , Store , EXTRA );
13908 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013909 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013910 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013911 return NULL;
13912 }
13913 goto done;
13914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013915 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013916 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013918 }
13919 { // t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013920 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013921 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013922 return NULL;
13923 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013924 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013925 expr_ty t_atom_var;
13926 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013927 (t_atom_var = t_atom_rule(p)) // t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013928 )
13929 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013930 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013931 _res = t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013932 goto done;
13933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013934 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013935 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013938 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013939 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013940 _PyPegen_insert_memo(p, _mark, target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013941 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013942 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013943}
13944
13945// Left-recursive
13946// t_primary:
13947// | t_primary '.' NAME &t_lookahead
13948// | t_primary '[' slices ']' &t_lookahead
13949// | t_primary genexp &t_lookahead
13950// | t_primary '(' arguments? ')' &t_lookahead
13951// | atom &t_lookahead
13952static expr_ty t_primary_raw(Parser *);
13953static expr_ty
13954t_primary_rule(Parser *p)
13955{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013956 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013957 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013958 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
13959 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013960 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013962 int _mark = p->mark;
13963 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013964 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013965 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013966 if (tmpvar_8) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013967 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013968 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013970 p->mark = _mark;
13971 void *_raw = t_primary_raw(p);
13972 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013973 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013974 _resmark = p->mark;
13975 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013976 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013977 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013978 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013979 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013980}
13981static expr_ty
13982t_primary_raw(Parser *p)
13983{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013984 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013985 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013987 return NULL;
13988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013989 expr_ty _res = NULL;
13990 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013991 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13992 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013993 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013994 return NULL;
13995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013996 int _start_lineno = p->tokens[_mark]->lineno;
13997 UNUSED(_start_lineno); // Only used by EXTRA macro
13998 int _start_col_offset = p->tokens[_mark]->col_offset;
13999 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014000 { // t_primary '.' NAME &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014001 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014002 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014003 return NULL;
14004 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014005 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014006 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014007 expr_ty a;
14008 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014009 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014010 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014011 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014012 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014013 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014014 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014015 &&
14016 _PyPegen_lookahead(1, t_lookahead_rule, p)
14017 )
14018 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014019 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014020 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14021 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014022 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014023 return NULL;
14024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014025 int _end_lineno = _token->end_lineno;
14026 UNUSED(_end_lineno); // Only used by EXTRA macro
14027 int _end_col_offset = _token->end_col_offset;
14028 UNUSED(_end_col_offset); // Only used by EXTRA macro
14029 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
14030 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014031 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014032 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014033 return NULL;
14034 }
14035 goto done;
14036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014037 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014038 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014040 }
14041 { // t_primary '[' slices ']' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014042 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014043 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014044 return NULL;
14045 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014046 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014047 Token * _literal;
14048 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014049 expr_ty a;
14050 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014051 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014052 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014053 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014054 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014055 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014056 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014057 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014058 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014059 &&
14060 _PyPegen_lookahead(1, t_lookahead_rule, p)
14061 )
14062 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014063 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014064 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14065 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014067 return NULL;
14068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014069 int _end_lineno = _token->end_lineno;
14070 UNUSED(_end_lineno); // Only used by EXTRA macro
14071 int _end_col_offset = _token->end_col_offset;
14072 UNUSED(_end_col_offset); // Only used by EXTRA macro
14073 _res = _Py_Subscript ( a , b , Load , EXTRA );
14074 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014075 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014076 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014077 return NULL;
14078 }
14079 goto done;
14080 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014081 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014082 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014084 }
14085 { // t_primary genexp &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014086 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014087 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014088 return NULL;
14089 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014090 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014091 expr_ty a;
14092 expr_ty b;
14093 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014094 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014095 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014096 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014097 &&
14098 _PyPegen_lookahead(1, t_lookahead_rule, p)
14099 )
14100 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014101 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014102 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14103 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014105 return NULL;
14106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014107 int _end_lineno = _token->end_lineno;
14108 UNUSED(_end_lineno); // Only used by EXTRA macro
14109 int _end_col_offset = _token->end_col_offset;
14110 UNUSED(_end_col_offset); // Only used by EXTRA macro
14111 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
14112 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014113 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014114 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014115 return NULL;
14116 }
14117 goto done;
14118 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014119 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014120 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014122 }
14123 { // t_primary '(' arguments? ')' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014124 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014125 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014126 return NULL;
14127 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014128 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014129 Token * _literal;
14130 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014131 expr_ty a;
14132 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014133 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014134 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014135 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014136 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014137 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014138 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014139 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014140 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014141 &&
14142 _PyPegen_lookahead(1, t_lookahead_rule, p)
14143 )
14144 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014145 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014146 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14147 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014148 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014149 return NULL;
14150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014151 int _end_lineno = _token->end_lineno;
14152 UNUSED(_end_lineno); // Only used by EXTRA macro
14153 int _end_col_offset = _token->end_col_offset;
14154 UNUSED(_end_col_offset); // Only used by EXTRA macro
14155 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14156 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014157 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014158 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014159 return NULL;
14160 }
14161 goto done;
14162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014163 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014164 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014166 }
14167 { // atom &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014169 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014170 return NULL;
14171 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014172 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014173 expr_ty a;
14174 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014175 (a = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014176 &&
14177 _PyPegen_lookahead(1, t_lookahead_rule, p)
14178 )
14179 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014180 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014181 _res = a;
14182 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014183 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014184 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014185 return NULL;
14186 }
14187 goto done;
14188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014189 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014190 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014192 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014193 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014194 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014195 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014196 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014197}
14198
14199// t_lookahead: '(' | '[' | '.'
14200static void *
14201t_lookahead_rule(Parser *p)
14202{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014203 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014204 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014206 return NULL;
14207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014208 void * _res = NULL;
14209 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014210 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014212 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014213 return NULL;
14214 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014215 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014216 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014217 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014218 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014219 )
14220 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014221 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014222 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014223 goto done;
14224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014225 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014226 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014228 }
14229 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014230 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014231 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014232 return NULL;
14233 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014234 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014235 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014236 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014237 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014238 )
14239 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014240 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014241 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014242 goto done;
14243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014244 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014245 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014247 }
14248 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014249 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014250 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014251 return NULL;
14252 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014253 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014254 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014255 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014256 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014257 )
14258 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014259 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014260 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014261 goto done;
14262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014263 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014264 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014267 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014268 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014269 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014270 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014271}
14272
14273// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14274static expr_ty
14275t_atom_rule(Parser *p)
14276{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014277 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014278 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014279 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014280 return NULL;
14281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014282 expr_ty _res = NULL;
14283 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014284 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14285 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014287 return NULL;
14288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014289 int _start_lineno = p->tokens[_mark]->lineno;
14290 UNUSED(_start_lineno); // Only used by EXTRA macro
14291 int _start_col_offset = p->tokens[_mark]->col_offset;
14292 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014293 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014294 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014295 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014296 return NULL;
14297 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014298 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014299 expr_ty a;
14300 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014301 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014302 )
14303 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014304 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014305 _res = _PyPegen_set_expr_context ( p , a , Store );
14306 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014307 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014308 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014309 return NULL;
14310 }
14311 goto done;
14312 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014313 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014314 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014316 }
14317 { // '(' target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014320 return NULL;
14321 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014322 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014323 Token * _literal;
14324 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014325 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014326 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014327 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014328 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014329 (a = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014330 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014331 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014332 )
14333 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014334 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014335 _res = _PyPegen_set_expr_context ( p , a , Store );
14336 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014337 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014338 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014339 return NULL;
14340 }
14341 goto done;
14342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014343 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014344 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014346 }
14347 { // '(' targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014348 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014349 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014350 return NULL;
14351 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014352 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014353 Token * _literal;
14354 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014355 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014356 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014357 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014358 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014359 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014360 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014361 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014362 )
14363 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014364 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014365 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14366 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014367 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014368 return NULL;
14369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014370 int _end_lineno = _token->end_lineno;
14371 UNUSED(_end_lineno); // Only used by EXTRA macro
14372 int _end_col_offset = _token->end_col_offset;
14373 UNUSED(_end_col_offset); // Only used by EXTRA macro
14374 _res = _Py_Tuple ( b , Store , EXTRA );
14375 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014376 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014378 return NULL;
14379 }
14380 goto done;
14381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014382 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014383 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014385 }
14386 { // '[' targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014387 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014388 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014389 return NULL;
14390 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014391 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014392 Token * _literal;
14393 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014394 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014395 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014396 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014397 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014398 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014399 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014400 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014401 )
14402 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014403 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014404 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14405 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014407 return NULL;
14408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014409 int _end_lineno = _token->end_lineno;
14410 UNUSED(_end_lineno); // Only used by EXTRA macro
14411 int _end_col_offset = _token->end_col_offset;
14412 UNUSED(_end_col_offset); // Only used by EXTRA macro
14413 _res = _Py_List ( b , Store , EXTRA );
14414 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014415 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014416 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014417 return NULL;
14418 }
14419 goto done;
14420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014421 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014422 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014425 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014426 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014427 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014428 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014429}
14430
14431// incorrect_arguments:
14432// | args ',' '*'
14433// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014434// | args for_if_clauses
14435// | args ',' expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014436// | args ',' args
14437static void *
14438incorrect_arguments_rule(Parser *p)
14439{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014440 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014441 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014442 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014443 return NULL;
14444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014445 void * _res = NULL;
14446 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014447 { // args ',' '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014448 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014449 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014450 return NULL;
14451 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014452 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014453 Token * _literal;
14454 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014455 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014456 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014457 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014458 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014459 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014460 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014461 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014462 )
14463 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014464 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014465 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14466 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014467 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014468 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014469 return NULL;
14470 }
14471 goto done;
14472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014473 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014474 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014476 }
14477 { // expression for_if_clauses ',' [args | expression for_if_clauses]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014478 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014479 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014480 return NULL;
14481 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014482 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014483 Token * _literal;
14484 void *_opt_var;
14485 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014486 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014487 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014488 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014489 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014490 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014491 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014492 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014493 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014494 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014495 (_opt_var = _tmp_126_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014496 )
14497 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014498 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014499 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014500 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014501 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014502 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014503 return NULL;
14504 }
14505 goto done;
14506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014507 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014508 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014510 }
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014511 { // args for_if_clauses
14512 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014513 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014514 return NULL;
14515 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014516 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014517 expr_ty a;
14518 asdl_seq* for_if_clauses_var;
14519 if (
14520 (a = args_rule(p)) // args
14521 &&
14522 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14523 )
14524 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014525 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014526 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14527 if (_res == NULL && PyErr_Occurred()) {
14528 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014529 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014530 return NULL;
14531 }
14532 goto done;
14533 }
14534 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014535 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014537 }
14538 { // args ',' expression for_if_clauses
14539 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014540 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014541 return NULL;
14542 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014543 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014544 Token * _literal;
14545 expr_ty a;
14546 expr_ty args_var;
14547 asdl_seq* for_if_clauses_var;
14548 if (
14549 (args_var = args_rule(p)) // args
14550 &&
14551 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14552 &&
14553 (a = expression_rule(p)) // expression
14554 &&
14555 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14556 )
14557 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014558 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014559 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14560 if (_res == NULL && PyErr_Occurred()) {
14561 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014562 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014563 return NULL;
14564 }
14565 goto done;
14566 }
14567 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014568 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014570 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014571 { // args ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014572 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014573 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014574 return NULL;
14575 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014576 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014577 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014578 expr_ty a;
14579 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014580 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014581 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014582 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014583 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014584 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014585 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014586 )
14587 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014588 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014589 _res = _PyPegen_arguments_parsing_error ( p , a );
14590 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014591 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014592 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014593 return NULL;
14594 }
14595 goto done;
14596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014597 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014598 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014601 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014602 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014603 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014604 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014605}
14606
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014607// invalid_kwarg: expression '='
14608static void *
14609invalid_kwarg_rule(Parser *p)
14610{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014611 D(p->level++);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014612 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014613 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014614 return NULL;
14615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014616 void * _res = NULL;
14617 int _mark = p->mark;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014618 { // expression '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014620 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014621 return NULL;
14622 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014623 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014624 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014625 expr_ty a;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014626 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014627 (a = expression_rule(p)) // expression
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014628 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014629 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014630 )
14631 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014632 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014633 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014634 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014635 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014636 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014637 return NULL;
14638 }
14639 goto done;
14640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014641 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014642 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014645 _res = NULL;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014646 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014647 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014648 return _res;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014649}
14650
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014651// invalid_named_expression: expression ':=' expression
14652static void *
14653invalid_named_expression_rule(Parser *p)
14654{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014655 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014657 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014658 return NULL;
14659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014660 void * _res = NULL;
14661 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014662 { // expression ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014663 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014664 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014665 return NULL;
14666 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014667 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014668 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014669 expr_ty a;
14670 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014671 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014672 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014673 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014674 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014675 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014676 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014677 )
14678 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014679 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014680 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014681 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014682 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014683 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014684 return NULL;
14685 }
14686 goto done;
14687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014688 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014689 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014692 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014693 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014694 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014695 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014696}
14697
14698// invalid_assignment:
Pablo Galindo102ca522020-06-28 00:40:41 +010014699// | invalid_ann_assign_target ':' expression
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014700// | star_named_expression ',' star_named_expressions* ':' expression
14701// | expression ':' expression
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014702// | ((star_targets '='))* star_expressions '='
14703// | ((star_targets '='))* yield_expr '='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014704// | star_expressions augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014705static void *
14706invalid_assignment_rule(Parser *p)
14707{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014708 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014709 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014711 return NULL;
14712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014713 void * _res = NULL;
14714 int _mark = p->mark;
Pablo Galindo102ca522020-06-28 00:40:41 +010014715 { // invalid_ann_assign_target ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014717 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014718 return NULL;
14719 }
Pablo Galindo102ca522020-06-28 00:40:41 +010014720 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014721 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014722 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014723 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014724 if (
Pablo Galindo102ca522020-06-28 00:40:41 +010014725 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014726 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014727 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014728 &&
14729 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014730 )
14731 {
Pablo Galindo102ca522020-06-28 00:40:41 +010014732 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14733 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not %s) can be annotated" , _PyPegen_get_expr_name ( a ) );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014734 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014735 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014736 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014737 return NULL;
14738 }
14739 goto done;
14740 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014741 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014742 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo102ca522020-06-28 00:40:41 +010014743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014744 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014745 { // star_named_expression ',' star_named_expressions* ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014746 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014747 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014748 return NULL;
14749 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014750 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014751 Token * _literal;
14752 Token * _literal_1;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014753 asdl_seq * _loop0_127_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014754 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014755 expr_ty expression_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014756 if (
14757 (a = star_named_expression_rule(p)) // star_named_expression
14758 &&
14759 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14760 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014761 (_loop0_127_var = _loop0_127_rule(p)) // star_named_expressions*
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014762 &&
14763 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014764 &&
14765 (expression_var = expression_rule(p)) // expression
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014766 )
14767 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014768 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014769 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014770 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014771 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014772 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014773 return NULL;
14774 }
14775 goto done;
14776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014777 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014778 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014780 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014781 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014782 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014783 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014784 return NULL;
14785 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014786 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014787 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014788 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014789 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014790 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014791 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014792 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014793 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014794 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014795 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014796 )
14797 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014798 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014799 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014800 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014801 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014802 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014803 return NULL;
14804 }
14805 goto done;
14806 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014807 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014808 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014810 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014811 { // ((star_targets '='))* star_expressions '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014812 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014813 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014814 return NULL;
14815 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014816 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014817 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014818 asdl_seq * _loop0_128_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014819 expr_ty a;
14820 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014821 (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014822 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014823 (a = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014824 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014825 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014826 )
14827 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014828 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
Lysandros Nikolaou71bb9212020-06-21 05:47:22 +030014829 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo16ab0702020-05-15 02:04:52 +010014830 if (_res == NULL && PyErr_Occurred()) {
14831 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014832 D(p->level--);
Pablo Galindo16ab0702020-05-15 02:04:52 +010014833 return NULL;
14834 }
14835 goto done;
14836 }
14837 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014838 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14840 }
14841 { // ((star_targets '='))* yield_expr '='
14842 if (p->error_indicator) {
14843 D(p->level--);
14844 return NULL;
14845 }
14846 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14847 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014848 asdl_seq * _loop0_129_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014849 expr_ty a;
14850 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014851 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014852 &&
14853 (a = yield_expr_rule(p)) // yield_expr
14854 &&
14855 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14856 )
14857 {
14858 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14859 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14860 if (_res == NULL && PyErr_Occurred()) {
14861 p->error_indicator = 1;
14862 D(p->level--);
14863 return NULL;
14864 }
14865 goto done;
14866 }
14867 p->mark = _mark;
14868 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014870 }
14871 { // star_expressions augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014872 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014873 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014874 return NULL;
14875 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014876 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014877 void *_tmp_130_var;
Pablo Galindo16ab0702020-05-15 02:04:52 +010014878 expr_ty a;
14879 AugOperator* augassign_var;
14880 if (
14881 (a = star_expressions_rule(p)) // star_expressions
14882 &&
14883 (augassign_var = augassign_rule(p)) // augassign
Pablo Galindo2b74c832020-04-27 18:02:07 +010014884 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014885 (_tmp_130_var = _tmp_130_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014886 )
14887 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014888 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014889 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014890 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014891 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014892 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014893 return NULL;
14894 }
14895 goto done;
14896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014897 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014898 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014901 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014902 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014903 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014904 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014905}
14906
Pablo Galindo102ca522020-06-28 00:40:41 +010014907// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
14908static expr_ty
14909invalid_ann_assign_target_rule(Parser *p)
14910{
14911 D(p->level++);
14912 if (p->error_indicator) {
14913 D(p->level--);
14914 return NULL;
14915 }
14916 expr_ty _res = NULL;
14917 int _mark = p->mark;
14918 { // list
14919 if (p->error_indicator) {
14920 D(p->level--);
14921 return NULL;
14922 }
14923 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
14924 expr_ty list_var;
14925 if (
14926 (list_var = list_rule(p)) // list
14927 )
14928 {
14929 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
14930 _res = list_var;
14931 goto done;
14932 }
14933 p->mark = _mark;
14934 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
14936 }
14937 { // tuple
14938 if (p->error_indicator) {
14939 D(p->level--);
14940 return NULL;
14941 }
14942 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
14943 expr_ty tuple_var;
14944 if (
14945 (tuple_var = tuple_rule(p)) // tuple
14946 )
14947 {
14948 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
14949 _res = tuple_var;
14950 goto done;
14951 }
14952 p->mark = _mark;
14953 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
14955 }
14956 { // '(' invalid_ann_assign_target ')'
14957 if (p->error_indicator) {
14958 D(p->level--);
14959 return NULL;
14960 }
14961 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14962 Token * _literal;
14963 Token * _literal_1;
14964 expr_ty a;
14965 if (
14966 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14967 &&
14968 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
14969 &&
14970 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14971 )
14972 {
14973 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14974 _res = a;
14975 if (_res == NULL && PyErr_Occurred()) {
14976 p->error_indicator = 1;
14977 D(p->level--);
14978 return NULL;
14979 }
14980 goto done;
14981 }
14982 p->mark = _mark;
14983 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14985 }
14986 _res = NULL;
14987 done:
14988 D(p->level--);
14989 return _res;
14990}
14991
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014992// invalid_del_stmt: 'del' star_expressions
14993static void *
14994invalid_del_stmt_rule(Parser *p)
14995{
14996 D(p->level++);
14997 if (p->error_indicator) {
14998 D(p->level--);
14999 return NULL;
15000 }
15001 void * _res = NULL;
15002 int _mark = p->mark;
15003 { // 'del' star_expressions
15004 if (p->error_indicator) {
15005 D(p->level--);
15006 return NULL;
15007 }
15008 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
15009 Token * _keyword;
15010 expr_ty a;
15011 if (
15012 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
15013 &&
15014 (a = star_expressions_rule(p)) // star_expressions
15015 )
15016 {
15017 D(fprintf(stderr, "%*c+ invalid_del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
Lysandros Nikolaou71bb9212020-06-21 05:47:22 +030015018 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015019 if (_res == NULL && PyErr_Occurred()) {
15020 p->error_indicator = 1;
15021 D(p->level--);
15022 return NULL;
15023 }
15024 goto done;
15025 }
15026 p->mark = _mark;
15027 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
15028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
15029 }
15030 _res = NULL;
15031 done:
15032 D(p->level--);
15033 return _res;
15034}
15035
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015036// invalid_block: NEWLINE !INDENT
15037static void *
15038invalid_block_rule(Parser *p)
15039{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015040 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015041 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015042 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015043 return NULL;
15044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015045 void * _res = NULL;
15046 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015047 { // NEWLINE !INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015048 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015049 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015050 return NULL;
15051 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015052 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015053 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015054 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015055 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015056 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015057 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015058 )
15059 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015060 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015061 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15062 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015063 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015064 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015065 return NULL;
15066 }
15067 goto done;
15068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015069 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015070 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015072 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015073 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015074 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015075 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015076 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015077}
15078
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015079// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015080static void *
15081invalid_comprehension_rule(Parser *p)
15082{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015083 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015085 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015086 return NULL;
15087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015088 void * _res = NULL;
15089 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015090 { // ('[' | '(' | '{') starred_expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015092 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015093 return NULL;
15094 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015095 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015096 void *_tmp_131_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015097 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015098 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015099 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015100 (_tmp_131_var = _tmp_131_rule(p)) // '[' | '(' | '{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015101 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015102 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015103 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015104 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015105 )
15106 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015107 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015108 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015109 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015110 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015111 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015112 return NULL;
15113 }
15114 goto done;
15115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015116 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015117 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015120 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015121 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015122 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015123 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015124}
15125
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015126// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15127static void *
15128invalid_dict_comprehension_rule(Parser *p)
15129{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015130 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015131 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015132 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015133 return NULL;
15134 }
15135 void * _res = NULL;
15136 int _mark = p->mark;
15137 { // '{' '**' bitwise_or for_if_clauses '}'
15138 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015139 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015140 return NULL;
15141 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015142 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015143 Token * _literal;
15144 Token * _literal_1;
15145 Token * a;
15146 expr_ty bitwise_or_var;
15147 asdl_seq* for_if_clauses_var;
15148 if (
15149 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15150 &&
15151 (a = _PyPegen_expect_token(p, 35)) // token='**'
15152 &&
15153 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15154 &&
15155 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15156 &&
15157 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15158 )
15159 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015160 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015161 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15162 if (_res == NULL && PyErr_Occurred()) {
15163 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015164 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015165 return NULL;
15166 }
15167 goto done;
15168 }
15169 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015170 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015172 }
15173 _res = NULL;
15174 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015175 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015176 return _res;
15177}
15178
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015179// invalid_parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -070015180// | param_no_default* (slash_with_default | param_with_default+) param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015181static void *
15182invalid_parameters_rule(Parser *p)
15183{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015184 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015185 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015186 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015187 return NULL;
15188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015189 void * _res = NULL;
15190 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015191 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015192 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015193 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015194 return NULL;
15195 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015196 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015197 asdl_seq * _loop0_132_var;
15198 void *_tmp_133_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015199 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015200 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015201 (_loop0_132_var = _loop0_132_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015202 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015203 (_tmp_133_var = _tmp_133_rule(p)) // slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015204 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015205 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015206 )
15207 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015208 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"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015209 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15210 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015211 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015212 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015213 return NULL;
15214 }
15215 goto done;
15216 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015217 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015218 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015221 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015222 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015223 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015224 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015225}
15226
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015227// invalid_lambda_parameters:
15228// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15229static void *
15230invalid_lambda_parameters_rule(Parser *p)
15231{
15232 D(p->level++);
15233 if (p->error_indicator) {
15234 D(p->level--);
15235 return NULL;
15236 }
15237 void * _res = NULL;
15238 int _mark = p->mark;
15239 { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15240 if (p->error_indicator) {
15241 D(p->level--);
15242 return NULL;
15243 }
15244 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015245 asdl_seq * _loop0_134_var;
15246 void *_tmp_135_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015247 arg_ty lambda_param_no_default_var;
15248 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015249 (_loop0_134_var = _loop0_134_rule(p)) // lambda_param_no_default*
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015250 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015251 (_tmp_135_var = _tmp_135_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015252 &&
15253 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15254 )
15255 {
15256 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"));
15257 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15258 if (_res == NULL && PyErr_Occurred()) {
15259 p->error_indicator = 1;
15260 D(p->level--);
15261 return NULL;
15262 }
15263 goto done;
15264 }
15265 p->mark = _mark;
15266 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15268 }
15269 _res = NULL;
15270 done:
15271 D(p->level--);
15272 return _res;
15273}
15274
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015275// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015276static void *
15277invalid_star_etc_rule(Parser *p)
15278{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015279 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015280 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015281 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015282 return NULL;
15283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015284 void * _res = NULL;
15285 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015286 { // '*' (')' | ',' (')' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015287 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015288 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015289 return NULL;
15290 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015291 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015292 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015293 void *_tmp_136_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015294 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015295 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015296 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015297 (_tmp_136_var = _tmp_136_rule(p)) // ')' | ',' (')' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015298 )
15299 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015300 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015301 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15302 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015303 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015304 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015305 return NULL;
15306 }
15307 goto done;
15308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015309 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015310 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015312 }
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015313 { // '*' ',' TYPE_COMMENT
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015314 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015315 D(p->level--);
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015316 return NULL;
15317 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015318 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015319 Token * _literal;
15320 Token * _literal_1;
15321 Token * type_comment_var;
15322 if (
15323 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15324 &&
15325 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15326 &&
15327 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15328 )
15329 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015330 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015331 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15332 if (_res == NULL && PyErr_Occurred()) {
15333 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015334 D(p->level--);
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015335 return NULL;
15336 }
15337 goto done;
15338 }
15339 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015340 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015343 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015344 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015345 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015346 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015347}
15348
15349// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15350static void *
15351invalid_lambda_star_etc_rule(Parser *p)
15352{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015353 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015354 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015355 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015356 return NULL;
15357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015358 void * _res = NULL;
15359 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015360 { // '*' (':' | ',' (':' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015361 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015362 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015363 return NULL;
15364 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015365 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015366 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015367 void *_tmp_137_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015368 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015369 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015370 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030015371 (_tmp_137_var = _tmp_137_rule(p)) // ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015372 )
15373 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015374 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015375 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15376 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015377 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015378 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015379 return NULL;
15380 }
15381 goto done;
15382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015383 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015384 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015387 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015388 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015389 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015390 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015391}
15392
Guido van Rossumc001c092020-04-30 12:12:19 -070015393// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15394static void *
15395invalid_double_type_comments_rule(Parser *p)
15396{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015397 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015398 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015399 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015400 return NULL;
15401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015402 void * _res = NULL;
15403 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015404 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015406 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015407 return NULL;
15408 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015409 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015410 Token * indent_var;
15411 Token * newline_var;
15412 Token * newline_var_1;
15413 Token * type_comment_var;
15414 Token * type_comment_var_1;
Guido van Rossumc001c092020-04-30 12:12:19 -070015415 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015416 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015417 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015418 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015419 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015420 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015421 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015422 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015423 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015424 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015425 )
15426 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015427 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"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015428 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15429 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015430 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015431 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015432 return NULL;
15433 }
15434 goto done;
15435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015436 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015437 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015440 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015441 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015442 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015443 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015444}
15445
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015446// invalid_with_item: expression 'as' expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015447static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015448invalid_with_item_rule(Parser *p)
Shantanu27c0d9b2020-05-11 14:53:58 -070015449{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015450 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070015451 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015452 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015453 return NULL;
15454 }
15455 void * _res = NULL;
15456 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015457 { // expression 'as' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015458 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015459 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015460 return NULL;
15461 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015462 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15463 Token * _keyword;
Shantanu27c0d9b2020-05-11 14:53:58 -070015464 expr_ty a;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015465 expr_ty expression_var;
Shantanu27c0d9b2020-05-11 14:53:58 -070015466 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015467 (expression_var = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015468 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015469 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15470 &&
15471 (a = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015472 )
15473 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015474 D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
Lysandros Nikolaou71bb9212020-06-21 05:47:22 +030015475 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Shantanu27c0d9b2020-05-11 14:53:58 -070015476 if (_res == NULL && PyErr_Occurred()) {
15477 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015478 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015479 return NULL;
15480 }
15481 goto done;
15482 }
15483 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015484 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15486 }
15487 _res = NULL;
15488 done:
15489 D(p->level--);
15490 return _res;
15491}
15492
15493// invalid_for_target: ASYNC? 'for' star_expressions
15494static void *
15495invalid_for_target_rule(Parser *p)
15496{
15497 D(p->level++);
15498 if (p->error_indicator) {
15499 D(p->level--);
15500 return NULL;
15501 }
15502 void * _res = NULL;
15503 int _mark = p->mark;
15504 { // ASYNC? 'for' star_expressions
15505 if (p->error_indicator) {
15506 D(p->level--);
15507 return NULL;
15508 }
15509 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15510 Token * _keyword;
15511 void *_opt_var;
15512 UNUSED(_opt_var); // Silence compiler warnings
15513 expr_ty a;
15514 if (
15515 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15516 &&
15517 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15518 &&
15519 (a = star_expressions_rule(p)) // star_expressions
15520 )
15521 {
15522 D(fprintf(stderr, "%*c+ invalid_for_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
Lysandros Nikolaou71bb9212020-06-21 05:47:22 +030015523 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015524 if (_res == NULL && PyErr_Occurred()) {
15525 p->error_indicator = 1;
15526 D(p->level--);
15527 return NULL;
15528 }
15529 goto done;
15530 }
15531 p->mark = _mark;
15532 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15534 }
15535 _res = NULL;
15536 done:
15537 D(p->level--);
15538 return _res;
15539}
15540
15541// invalid_group: '(' starred_expression ')'
15542static void *
15543invalid_group_rule(Parser *p)
15544{
15545 D(p->level++);
15546 if (p->error_indicator) {
15547 D(p->level--);
15548 return NULL;
15549 }
15550 void * _res = NULL;
15551 int _mark = p->mark;
15552 { // '(' starred_expression ')'
15553 if (p->error_indicator) {
15554 D(p->level--);
15555 return NULL;
15556 }
15557 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15558 Token * _literal;
15559 Token * _literal_1;
15560 expr_ty a;
15561 if (
15562 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15563 &&
15564 (a = starred_expression_rule(p)) // starred_expression
15565 &&
15566 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15567 )
15568 {
15569 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15570 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15571 if (_res == NULL && PyErr_Occurred()) {
15572 p->error_indicator = 1;
15573 D(p->level--);
15574 return NULL;
15575 }
15576 goto done;
15577 }
15578 p->mark = _mark;
15579 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070015581 }
15582 _res = NULL;
15583 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015584 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015585 return _res;
15586}
15587
Pablo Galindo275d7e12020-05-21 22:04:54 +010015588// invalid_import_from_targets: import_from_as_names ','
15589static void *
15590invalid_import_from_targets_rule(Parser *p)
15591{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015592 D(p->level++);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015593 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015594 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015595 return NULL;
15596 }
15597 void * _res = NULL;
15598 int _mark = p->mark;
15599 { // import_from_as_names ','
15600 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015601 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015602 return NULL;
15603 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015604 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015605 Token * _literal;
15606 asdl_seq* import_from_as_names_var;
15607 if (
15608 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15609 &&
15610 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15611 )
15612 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015613 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015614 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15615 if (_res == NULL && PyErr_Occurred()) {
15616 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015617 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015618 return NULL;
15619 }
15620 goto done;
15621 }
15622 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015623 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015625 }
15626 _res = NULL;
15627 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015628 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015629 return _res;
15630}
15631
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015632// _loop0_1: NEWLINE
15633static asdl_seq *
15634_loop0_1_rule(Parser *p)
15635{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015636 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015637 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015638 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015639 return NULL;
15640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015641 void *_res = NULL;
15642 int _mark = p->mark;
15643 int _start_mark = p->mark;
15644 void **_children = PyMem_Malloc(sizeof(void *));
15645 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015646 p->error_indicator = 1;
15647 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015648 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015649 return NULL;
15650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015651 ssize_t _children_capacity = 1;
15652 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015653 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015654 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015655 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015656 return NULL;
15657 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015658 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015659 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015660 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015661 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015662 )
15663 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015664 _res = newline_var;
15665 if (_n == _children_capacity) {
15666 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015667 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15668 if (!_new_children) {
15669 p->error_indicator = 1;
15670 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015671 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015672 return NULL;
15673 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015674 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015676 _children[_n++] = _res;
15677 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015679 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015680 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015683 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15684 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015685 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015686 p->error_indicator = 1;
15687 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015688 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015689 return NULL;
15690 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015691 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15692 PyMem_Free(_children);
15693 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015694 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015695 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015696}
15697
Guido van Rossumc001c092020-04-30 12:12:19 -070015698// _loop0_2: NEWLINE
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015699static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015700_loop0_2_rule(Parser *p)
15701{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015702 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015703 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015704 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015705 return NULL;
15706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015707 void *_res = NULL;
15708 int _mark = p->mark;
15709 int _start_mark = p->mark;
15710 void **_children = PyMem_Malloc(sizeof(void *));
15711 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015712 p->error_indicator = 1;
15713 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015714 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015715 return NULL;
15716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015717 ssize_t _children_capacity = 1;
15718 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015719 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015721 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015722 return NULL;
15723 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015724 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015725 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015726 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015727 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015728 )
15729 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015730 _res = newline_var;
15731 if (_n == _children_capacity) {
15732 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015733 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15734 if (!_new_children) {
15735 p->error_indicator = 1;
15736 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015737 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015738 return NULL;
15739 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015740 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015742 _children[_n++] = _res;
15743 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015745 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015746 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015749 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15750 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015751 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015752 p->error_indicator = 1;
15753 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015754 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015755 return NULL;
15756 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015757 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15758 PyMem_Free(_children);
15759 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015760 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015761 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015762}
15763
15764// _loop0_4: ',' expression
15765static asdl_seq *
15766_loop0_4_rule(Parser *p)
15767{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015768 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015769 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015770 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015771 return NULL;
15772 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015773 void *_res = NULL;
15774 int _mark = p->mark;
15775 int _start_mark = p->mark;
15776 void **_children = PyMem_Malloc(sizeof(void *));
15777 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015778 p->error_indicator = 1;
15779 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015780 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015781 return NULL;
15782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015783 ssize_t _children_capacity = 1;
15784 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015785 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015786 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015787 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015788 return NULL;
15789 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015790 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015791 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015792 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015793 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015794 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015795 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015796 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015797 )
15798 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015799 _res = elem;
15800 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015801 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015802 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015803 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015804 return NULL;
15805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015806 if (_n == _children_capacity) {
15807 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015808 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15809 if (!_new_children) {
15810 p->error_indicator = 1;
15811 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015812 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015813 return NULL;
15814 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015815 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015817 _children[_n++] = _res;
15818 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015819 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015820 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015821 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015824 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15825 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015826 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015827 p->error_indicator = 1;
15828 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015829 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015830 return NULL;
15831 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015832 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15833 PyMem_Free(_children);
15834 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015835 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015836 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015837}
15838
15839// _gather_3: expression _loop0_4
15840static asdl_seq *
15841_gather_3_rule(Parser *p)
15842{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015843 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015844 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015845 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015846 return NULL;
15847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015848 asdl_seq * _res = NULL;
15849 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015850 { // expression _loop0_4
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015851 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015852 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015853 return NULL;
15854 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015855 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015856 expr_ty elem;
15857 asdl_seq * seq;
15858 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015859 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015860 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015861 (seq = _loop0_4_rule(p)) // _loop0_4
Guido van Rossumc001c092020-04-30 12:12:19 -070015862 )
15863 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015864 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015865 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015866 goto done;
15867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015868 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015869 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015872 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015873 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015874 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015875 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015876}
15877
15878// _loop0_6: ',' expression
15879static asdl_seq *
15880_loop0_6_rule(Parser *p)
15881{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015882 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015883 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015884 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015885 return NULL;
15886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015887 void *_res = NULL;
15888 int _mark = p->mark;
15889 int _start_mark = p->mark;
15890 void **_children = PyMem_Malloc(sizeof(void *));
15891 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015892 p->error_indicator = 1;
15893 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015894 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015895 return NULL;
15896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015897 ssize_t _children_capacity = 1;
15898 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015899 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015900 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015901 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015902 return NULL;
15903 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015904 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015905 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015906 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015907 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015908 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015909 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015910 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015911 )
15912 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015913 _res = elem;
15914 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015915 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015916 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015917 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015918 return NULL;
15919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015920 if (_n == _children_capacity) {
15921 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015922 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15923 if (!_new_children) {
15924 p->error_indicator = 1;
15925 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015926 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015927 return NULL;
15928 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015929 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015931 _children[_n++] = _res;
15932 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015934 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015935 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
15936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015938 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15939 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015940 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015941 p->error_indicator = 1;
15942 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015943 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015944 return NULL;
15945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015946 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15947 PyMem_Free(_children);
15948 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015949 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015950 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015951}
15952
15953// _gather_5: expression _loop0_6
15954static asdl_seq *
15955_gather_5_rule(Parser *p)
15956{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015957 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015958 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015959 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015960 return NULL;
15961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015962 asdl_seq * _res = NULL;
15963 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015964 { // expression _loop0_6
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015966 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015967 return NULL;
15968 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015969 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015970 expr_ty elem;
15971 asdl_seq * seq;
15972 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015973 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015974 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015975 (seq = _loop0_6_rule(p)) // _loop0_6
Guido van Rossumc001c092020-04-30 12:12:19 -070015976 )
15977 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015978 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015979 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015980 goto done;
15981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015982 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015983 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
15984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015986 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015987 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015988 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015989 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015990}
15991
15992// _loop0_8: ',' expression
15993static asdl_seq *
15994_loop0_8_rule(Parser *p)
15995{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015996 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015997 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015998 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015999 return NULL;
16000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016001 void *_res = NULL;
16002 int _mark = p->mark;
16003 int _start_mark = p->mark;
16004 void **_children = PyMem_Malloc(sizeof(void *));
16005 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016006 p->error_indicator = 1;
16007 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016008 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016009 return NULL;
16010 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016011 ssize_t _children_capacity = 1;
16012 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016013 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016014 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016015 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016016 return NULL;
16017 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016018 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016019 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016020 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016021 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016022 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016023 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016024 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016025 )
16026 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016027 _res = elem;
16028 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016029 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016030 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016031 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016032 return NULL;
16033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016034 if (_n == _children_capacity) {
16035 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016036 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16037 if (!_new_children) {
16038 p->error_indicator = 1;
16039 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016040 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016041 return NULL;
16042 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016043 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016045 _children[_n++] = _res;
16046 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016047 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016048 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016049 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016052 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16053 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016054 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016055 p->error_indicator = 1;
16056 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016057 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016058 return NULL;
16059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016060 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16061 PyMem_Free(_children);
16062 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016063 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016064 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016065}
16066
16067// _gather_7: expression _loop0_8
16068static asdl_seq *
16069_gather_7_rule(Parser *p)
16070{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016071 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016072 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016073 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016074 return NULL;
16075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016076 asdl_seq * _res = NULL;
16077 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016078 { // expression _loop0_8
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016080 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016081 return NULL;
16082 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016083 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016084 expr_ty elem;
16085 asdl_seq * seq;
16086 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016087 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016088 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016089 (seq = _loop0_8_rule(p)) // _loop0_8
Guido van Rossumc001c092020-04-30 12:12:19 -070016090 )
16091 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016092 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016093 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016094 goto done;
16095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016096 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016097 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016100 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016101 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016102 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016103 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016104}
16105
16106// _loop0_10: ',' expression
16107static asdl_seq *
16108_loop0_10_rule(Parser *p)
16109{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016110 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016111 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016112 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016113 return NULL;
16114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016115 void *_res = NULL;
16116 int _mark = p->mark;
16117 int _start_mark = p->mark;
16118 void **_children = PyMem_Malloc(sizeof(void *));
16119 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016120 p->error_indicator = 1;
16121 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016122 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016123 return NULL;
16124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016125 ssize_t _children_capacity = 1;
16126 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016127 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016129 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016130 return NULL;
16131 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016132 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016133 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016134 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016135 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016136 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016137 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016138 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016139 )
16140 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016141 _res = elem;
16142 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016143 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016144 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016145 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016146 return NULL;
16147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016148 if (_n == _children_capacity) {
16149 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016150 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16151 if (!_new_children) {
16152 p->error_indicator = 1;
16153 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016154 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016155 return NULL;
16156 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016157 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016159 _children[_n++] = _res;
16160 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016162 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016163 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016166 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16167 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016168 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016169 p->error_indicator = 1;
16170 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016171 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016172 return NULL;
16173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016174 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16175 PyMem_Free(_children);
16176 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016177 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016178 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016179}
16180
16181// _gather_9: expression _loop0_10
16182static asdl_seq *
16183_gather_9_rule(Parser *p)
16184{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016185 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016187 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016188 return NULL;
16189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016190 asdl_seq * _res = NULL;
16191 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016192 { // expression _loop0_10
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016193 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016194 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016195 return NULL;
16196 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016197 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016198 expr_ty elem;
16199 asdl_seq * seq;
16200 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016201 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016202 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016203 (seq = _loop0_10_rule(p)) // _loop0_10
Guido van Rossumc001c092020-04-30 12:12:19 -070016204 )
16205 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016206 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016207 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016208 goto done;
16209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016210 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016211 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016214 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016215 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016216 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016217 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016218}
16219
16220// _loop1_11: statement
16221static asdl_seq *
16222_loop1_11_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016223{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016224 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016225 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016226 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016227 return NULL;
16228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016229 void *_res = NULL;
16230 int _mark = p->mark;
16231 int _start_mark = p->mark;
16232 void **_children = PyMem_Malloc(sizeof(void *));
16233 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016234 p->error_indicator = 1;
16235 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016236 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016237 return NULL;
16238 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016239 ssize_t _children_capacity = 1;
16240 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016241 { // statement
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016242 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016243 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016244 return NULL;
16245 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016246 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016247 asdl_seq* statement_var;
16248 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010016249 (statement_var = statement_rule(p)) // statement
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016250 )
16251 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016252 _res = statement_var;
16253 if (_n == _children_capacity) {
16254 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016255 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16256 if (!_new_children) {
16257 p->error_indicator = 1;
16258 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016259 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016260 return NULL;
16261 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016262 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016264 _children[_n++] = _res;
16265 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016267 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016268 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016270 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016271 if (_n == 0 || p->error_indicator) {
16272 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016273 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016274 return NULL;
16275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016276 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16277 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016278 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016279 p->error_indicator = 1;
16280 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016281 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016282 return NULL;
16283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016284 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16285 PyMem_Free(_children);
16286 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016287 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016288 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016289}
16290
Guido van Rossumc001c092020-04-30 12:12:19 -070016291// _loop0_13: ';' small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016292static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016293_loop0_13_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016294{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016295 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016296 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016298 return NULL;
16299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016300 void *_res = NULL;
16301 int _mark = p->mark;
16302 int _start_mark = p->mark;
16303 void **_children = PyMem_Malloc(sizeof(void *));
16304 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016305 p->error_indicator = 1;
16306 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016307 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016308 return NULL;
16309 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016310 ssize_t _children_capacity = 1;
16311 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016312 { // ';' small_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016313 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016314 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016315 return NULL;
16316 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016317 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016318 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016319 stmt_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016320 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016321 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016322 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016323 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016324 )
16325 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016326 _res = elem;
16327 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016328 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016329 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016330 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016331 return NULL;
16332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016333 if (_n == _children_capacity) {
16334 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016335 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16336 if (!_new_children) {
16337 p->error_indicator = 1;
16338 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016339 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016340 return NULL;
16341 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016342 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016344 _children[_n++] = _res;
16345 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016347 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016348 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
16349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016350 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016351 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16352 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016353 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016354 p->error_indicator = 1;
16355 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016356 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016357 return NULL;
16358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016359 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16360 PyMem_Free(_children);
16361 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016362 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016363 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016364}
16365
Guido van Rossumc001c092020-04-30 12:12:19 -070016366// _gather_12: small_stmt _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016367static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016368_gather_12_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016369{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016370 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016371 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016372 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016373 return NULL;
16374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016375 asdl_seq * _res = NULL;
16376 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016377 { // small_stmt _loop0_13
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016378 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016379 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016380 return NULL;
16381 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016382 D(fprintf(stderr, "%*c> _gather_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016383 stmt_ty elem;
16384 asdl_seq * seq;
16385 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016386 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016387 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016388 (seq = _loop0_13_rule(p)) // _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016389 )
16390 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016391 D(fprintf(stderr, "%*c+ _gather_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016392 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016393 goto done;
16394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016395 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016396 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
16397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016399 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016400 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016401 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016402 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016403}
16404
Guido van Rossumc001c092020-04-30 12:12:19 -070016405// _tmp_14: 'import' | 'from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016406static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016407_tmp_14_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016408{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016409 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016410 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016411 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016412 return NULL;
16413 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016414 void * _res = NULL;
16415 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016416 { // 'import'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016417 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016418 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016419 return NULL;
16420 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016421 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016422 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016423 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016424 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016425 )
16426 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016427 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016428 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016429 goto done;
16430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016431 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016432 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016434 }
16435 { // 'from'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016436 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016437 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016438 return NULL;
16439 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016440 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016441 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016442 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016443 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016444 )
16445 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016446 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016447 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016448 goto done;
16449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016450 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016451 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016454 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016455 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016456 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016457 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016458}
16459
Guido van Rossumc001c092020-04-30 12:12:19 -070016460// _tmp_15: 'def' | '@' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016461static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016462_tmp_15_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016463{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016464 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016465 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016466 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016467 return NULL;
16468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016469 void * _res = NULL;
16470 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016471 { // 'def'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016472 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016473 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016474 return NULL;
16475 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016476 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016477 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016478 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016479 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016480 )
16481 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016482 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016483 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016484 goto done;
16485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016486 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016487 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016489 }
16490 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016491 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016492 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016493 return NULL;
16494 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016495 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016496 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016497 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016498 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016499 )
16500 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016501 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016502 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016503 goto done;
16504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016505 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016506 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016508 }
16509 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016510 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016511 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016512 return NULL;
16513 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016514 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016515 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016516 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016517 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016518 )
16519 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016520 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016521 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016522 goto done;
16523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016524 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016525 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016527 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016528 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016529 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016530 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016531 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016532}
16533
Guido van Rossumc001c092020-04-30 12:12:19 -070016534// _tmp_16: 'class' | '@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016535static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016536_tmp_16_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016537{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016538 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016539 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016540 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016541 return NULL;
16542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016543 void * _res = NULL;
16544 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016545 { // 'class'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016546 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016547 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016548 return NULL;
16549 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016550 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016551 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016552 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016553 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016554 )
16555 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016556 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016557 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016558 goto done;
16559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016560 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016561 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016563 }
16564 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016565 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016566 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016567 return NULL;
16568 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016569 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016570 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016571 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016572 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016573 )
16574 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016575 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016576 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016577 goto done;
16578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016579 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016580 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016583 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016584 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016585 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016586 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016587}
16588
Guido van Rossumc001c092020-04-30 12:12:19 -070016589// _tmp_17: 'with' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016590static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016591_tmp_17_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016592{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016593 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016594 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016595 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016596 return NULL;
16597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016598 void * _res = NULL;
16599 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016600 { // 'with'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016603 return NULL;
16604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016605 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016606 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016607 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016608 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016609 )
16610 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016611 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016612 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016613 goto done;
16614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016615 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016616 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016618 }
16619 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016620 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016621 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016622 return NULL;
16623 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016624 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016625 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016626 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016627 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016628 )
16629 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016630 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016631 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016632 goto done;
16633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016634 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016635 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016638 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016639 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016640 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016641 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016642}
16643
Guido van Rossumc001c092020-04-30 12:12:19 -070016644// _tmp_18: 'for' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016645static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016646_tmp_18_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016647{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016648 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016649 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016650 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016651 return NULL;
16652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016653 void * _res = NULL;
16654 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016655 { // 'for'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016657 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016658 return NULL;
16659 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016660 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016661 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016662 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016663 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016664 )
16665 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016666 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016667 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016668 goto done;
16669 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016670 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016671 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016673 }
16674 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016675 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016676 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016677 return NULL;
16678 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016679 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016680 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016681 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016682 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016683 )
16684 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016685 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016686 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016687 goto done;
16688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016689 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016690 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016692 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016693 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016694 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016695 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016696 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016697}
16698
Guido van Rossumc001c092020-04-30 12:12:19 -070016699// _tmp_19: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016700static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016701_tmp_19_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016702{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016703 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016704 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016705 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016706 return NULL;
16707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016708 void * _res = NULL;
16709 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016710 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016712 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016713 return NULL;
16714 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016715 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016716 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016717 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016718 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016719 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016720 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016721 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016722 )
16723 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016724 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016725 _res = d;
16726 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016727 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016728 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016729 return NULL;
16730 }
16731 goto done;
16732 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016733 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016734 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016736 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016737 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016738 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016739 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016740 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016741}
16742
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016743// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016744static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016745_tmp_20_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016746{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016747 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016748 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016749 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016750 return NULL;
16751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016752 void * _res = NULL;
16753 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016754 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016755 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016756 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016757 return NULL;
16758 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016759 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016760 Token * _literal;
16761 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016762 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016763 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016764 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016765 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016766 (b = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016767 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016768 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016769 )
16770 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016771 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016772 _res = b;
16773 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016774 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016775 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016776 return NULL;
16777 }
16778 goto done;
16779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016780 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016781 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016783 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016784 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016785 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016786 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016787 return NULL;
16788 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016789 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016790 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016791 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016792 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016793 )
16794 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016795 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016796 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016797 goto done;
16798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016799 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016800 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016803 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016804 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016805 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016806 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016807}
16808
Guido van Rossumc001c092020-04-30 12:12:19 -070016809// _tmp_21: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016810static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016811_tmp_21_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016812{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016813 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016814 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016815 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016816 return NULL;
16817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016818 void * _res = NULL;
16819 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016820 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016821 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016822 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016823 return NULL;
16824 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016825 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016826 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016827 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016828 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016829 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016830 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016831 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016832 )
16833 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016834 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016835 _res = d;
16836 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016837 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016838 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016839 return NULL;
16840 }
16841 goto done;
16842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016843 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016844 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016847 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016848 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016849 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016850 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016851}
16852
Guido van Rossumc001c092020-04-30 12:12:19 -070016853// _loop1_22: (star_targets '=')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016854static asdl_seq *
16855_loop1_22_rule(Parser *p)
16856{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016857 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016858 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016859 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016860 return NULL;
16861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016862 void *_res = NULL;
16863 int _mark = p->mark;
16864 int _start_mark = p->mark;
16865 void **_children = PyMem_Malloc(sizeof(void *));
16866 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016867 p->error_indicator = 1;
16868 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016869 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016870 return NULL;
16871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016872 ssize_t _children_capacity = 1;
16873 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016874 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016875 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016876 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016877 return NULL;
16878 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016879 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030016880 void *_tmp_138_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016881 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030016882 (_tmp_138_var = _tmp_138_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016883 )
16884 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030016885 _res = _tmp_138_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016886 if (_n == _children_capacity) {
16887 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016888 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16889 if (!_new_children) {
16890 p->error_indicator = 1;
16891 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016892 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016893 return NULL;
16894 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016895 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016897 _children[_n++] = _res;
16898 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016899 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016900 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016901 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
16902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016903 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016904 if (_n == 0 || p->error_indicator) {
16905 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016906 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016907 return NULL;
16908 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016909 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16910 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016911 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016912 p->error_indicator = 1;
16913 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016914 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016915 return NULL;
16916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016917 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16918 PyMem_Free(_children);
16919 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016920 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016921 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016922}
16923
Guido van Rossumc001c092020-04-30 12:12:19 -070016924// _tmp_23: yield_expr | star_expressions
16925static void *
16926_tmp_23_rule(Parser *p)
16927{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016928 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016929 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016930 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016931 return NULL;
16932 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016933 void * _res = NULL;
16934 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016935 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016936 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016937 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016938 return NULL;
16939 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016940 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016941 expr_ty yield_expr_var;
16942 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016943 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016944 )
16945 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016946 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016947 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016948 goto done;
16949 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016950 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016951 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016953 }
16954 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016955 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016956 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016957 return NULL;
16958 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016959 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016960 expr_ty star_expressions_var;
16961 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016962 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016963 )
16964 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016965 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016966 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016967 goto done;
16968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016969 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016970 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016973 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016974 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016975 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016976 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016977}
16978
16979// _tmp_24: yield_expr | star_expressions
16980static void *
16981_tmp_24_rule(Parser *p)
16982{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016983 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016984 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016985 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016986 return NULL;
16987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016988 void * _res = NULL;
16989 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016990 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016991 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016992 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016993 return NULL;
16994 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016995 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016996 expr_ty yield_expr_var;
16997 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016998 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016999 )
17000 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017001 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017002 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017003 goto done;
17004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017005 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017006 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017008 }
17009 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017010 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017011 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017012 return NULL;
17013 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017014 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017015 expr_ty star_expressions_var;
17016 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017017 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070017018 )
17019 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017020 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017021 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017022 goto done;
17023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017024 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017025 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017028 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017029 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017030 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017031 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017032}
17033
17034// _loop0_26: ',' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017035static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017036_loop0_26_rule(Parser *p)
17037{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017038 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017039 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017040 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017041 return NULL;
17042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017043 void *_res = NULL;
17044 int _mark = p->mark;
17045 int _start_mark = p->mark;
17046 void **_children = PyMem_Malloc(sizeof(void *));
17047 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017048 p->error_indicator = 1;
17049 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017050 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017051 return NULL;
17052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017053 ssize_t _children_capacity = 1;
17054 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017055 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017056 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017057 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017058 return NULL;
17059 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017060 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017061 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017062 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017063 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017064 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017065 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017066 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017067 )
17068 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017069 _res = elem;
17070 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017071 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017072 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017073 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017074 return NULL;
17075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017076 if (_n == _children_capacity) {
17077 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017078 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17079 if (!_new_children) {
17080 p->error_indicator = 1;
17081 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017082 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017083 return NULL;
17084 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017085 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017087 _children[_n++] = _res;
17088 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017090 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017091 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017094 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17095 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017096 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017097 p->error_indicator = 1;
17098 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017099 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017100 return NULL;
17101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017102 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17103 PyMem_Free(_children);
17104 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017105 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017106 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017107}
17108
17109// _gather_25: NAME _loop0_26
17110static asdl_seq *
17111_gather_25_rule(Parser *p)
17112{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017113 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017115 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017116 return NULL;
17117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017118 asdl_seq * _res = NULL;
17119 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017120 { // NAME _loop0_26
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017121 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017122 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017123 return NULL;
17124 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017125 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017126 expr_ty elem;
17127 asdl_seq * seq;
17128 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017129 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017130 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017131 (seq = _loop0_26_rule(p)) // _loop0_26
Guido van Rossumc001c092020-04-30 12:12:19 -070017132 )
17133 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017134 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017135 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017136 goto done;
17137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017138 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017139 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017142 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017143 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017144 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017145 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017146}
17147
17148// _loop0_28: ',' NAME
17149static asdl_seq *
17150_loop0_28_rule(Parser *p)
17151{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017152 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017153 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017154 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017155 return NULL;
17156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017157 void *_res = NULL;
17158 int _mark = p->mark;
17159 int _start_mark = p->mark;
17160 void **_children = PyMem_Malloc(sizeof(void *));
17161 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017162 p->error_indicator = 1;
17163 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017164 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017165 return NULL;
17166 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017167 ssize_t _children_capacity = 1;
17168 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017169 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017170 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017171 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017172 return NULL;
17173 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017174 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017175 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017176 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017177 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017178 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017179 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017180 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017181 )
17182 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017183 _res = elem;
17184 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017185 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017186 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017187 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017188 return NULL;
17189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017190 if (_n == _children_capacity) {
17191 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017192 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17193 if (!_new_children) {
17194 p->error_indicator = 1;
17195 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017196 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017197 return NULL;
17198 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017199 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017201 _children[_n++] = _res;
17202 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017204 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017205 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017208 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17209 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017210 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017211 p->error_indicator = 1;
17212 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017213 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017214 return NULL;
17215 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017216 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17217 PyMem_Free(_children);
17218 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017219 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017220 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017221}
17222
17223// _gather_27: NAME _loop0_28
17224static asdl_seq *
17225_gather_27_rule(Parser *p)
17226{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017227 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017228 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017229 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017230 return NULL;
17231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017232 asdl_seq * _res = NULL;
17233 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017234 { // NAME _loop0_28
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017235 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017236 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017237 return NULL;
17238 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017239 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017240 expr_ty elem;
17241 asdl_seq * seq;
17242 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017243 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017244 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017245 (seq = _loop0_28_rule(p)) // _loop0_28
Guido van Rossumc001c092020-04-30 12:12:19 -070017246 )
17247 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017248 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017249 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017250 goto done;
17251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017252 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017253 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017256 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017257 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017258 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017259 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017260}
17261
17262// _tmp_29: ',' expression
17263static void *
17264_tmp_29_rule(Parser *p)
17265{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017266 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017267 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017268 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017269 return NULL;
17270 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017271 void * _res = NULL;
17272 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017273 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017274 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017275 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017276 return NULL;
17277 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017278 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017279 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017280 expr_ty z;
17281 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017282 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017283 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017284 (z = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070017285 )
17286 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017287 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017288 _res = z;
17289 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017291 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017292 return NULL;
17293 }
17294 goto done;
17295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017296 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017297 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017300 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017301 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017302 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017303 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017304}
17305
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017306// _tmp_30: ';' | NEWLINE
17307static void *
17308_tmp_30_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017309{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017310 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017312 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017313 return NULL;
17314 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017315 void * _res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017316 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017317 { // ';'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017320 return NULL;
17321 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017322 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17323 Token * _literal;
17324 if (
17325 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Guido van Rossumc001c092020-04-30 12:12:19 -070017326 )
17327 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017328 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17329 _res = _literal;
17330 goto done;
Guido van Rossumc001c092020-04-30 12:12:19 -070017331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017332 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017333 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017335 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017336 { // NEWLINE
17337 if (p->error_indicator) {
17338 D(p->level--);
17339 return NULL;
17340 }
17341 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17342 Token * newline_var;
17343 if (
17344 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17345 )
17346 {
17347 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17348 _res = newline_var;
17349 goto done;
17350 }
17351 p->mark = _mark;
17352 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017354 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017355 _res = NULL;
17356 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017357 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017358 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017359}
17360
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017361// _loop0_31: ('.' | '...')
Guido van Rossumc001c092020-04-30 12:12:19 -070017362static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017363_loop0_31_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017364{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017365 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017367 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017368 return NULL;
17369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017370 void *_res = NULL;
17371 int _mark = p->mark;
17372 int _start_mark = p->mark;
17373 void **_children = PyMem_Malloc(sizeof(void *));
17374 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017375 p->error_indicator = 1;
17376 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017377 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017378 return NULL;
17379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017380 ssize_t _children_capacity = 1;
17381 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017382 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017383 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017384 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017385 return NULL;
17386 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017387 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017388 void *_tmp_139_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017389 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017390 (_tmp_139_var = _tmp_139_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070017391 )
17392 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017393 _res = _tmp_139_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017394 if (_n == _children_capacity) {
17395 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017396 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17397 if (!_new_children) {
17398 p->error_indicator = 1;
17399 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017400 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017401 return NULL;
17402 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017403 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017405 _children[_n++] = _res;
17406 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017408 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017409 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17411 }
17412 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17413 if (!_seq) {
17414 PyMem_Free(_children);
17415 p->error_indicator = 1;
17416 PyErr_NoMemory();
17417 D(p->level--);
17418 return NULL;
17419 }
17420 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17421 PyMem_Free(_children);
17422 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17423 D(p->level--);
17424 return _seq;
17425}
17426
17427// _loop1_32: ('.' | '...')
17428static asdl_seq *
17429_loop1_32_rule(Parser *p)
17430{
17431 D(p->level++);
17432 if (p->error_indicator) {
17433 D(p->level--);
17434 return NULL;
17435 }
17436 void *_res = NULL;
17437 int _mark = p->mark;
17438 int _start_mark = p->mark;
17439 void **_children = PyMem_Malloc(sizeof(void *));
17440 if (!_children) {
17441 p->error_indicator = 1;
17442 PyErr_NoMemory();
17443 D(p->level--);
17444 return NULL;
17445 }
17446 ssize_t _children_capacity = 1;
17447 ssize_t _n = 0;
17448 { // ('.' | '...')
17449 if (p->error_indicator) {
17450 D(p->level--);
17451 return NULL;
17452 }
17453 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017454 void *_tmp_140_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017455 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017456 (_tmp_140_var = _tmp_140_rule(p)) // '.' | '...'
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017457 )
17458 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030017459 _res = _tmp_140_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017460 if (_n == _children_capacity) {
17461 _children_capacity *= 2;
17462 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17463 if (!_new_children) {
17464 p->error_indicator = 1;
17465 PyErr_NoMemory();
17466 D(p->level--);
17467 return NULL;
17468 }
17469 _children = _new_children;
17470 }
17471 _children[_n++] = _res;
17472 _mark = p->mark;
17473 }
17474 p->mark = _mark;
17475 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017478 if (_n == 0 || p->error_indicator) {
17479 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017480 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017481 return NULL;
17482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017483 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17484 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017485 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017486 p->error_indicator = 1;
17487 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017488 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017489 return NULL;
17490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017491 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17492 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017493 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017494 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017495 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017496}
17497
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017498// _loop0_34: ',' import_from_as_name
Guido van Rossumc001c092020-04-30 12:12:19 -070017499static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017500_loop0_34_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017501{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017502 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017505 return NULL;
17506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017507 void *_res = NULL;
17508 int _mark = p->mark;
17509 int _start_mark = p->mark;
17510 void **_children = PyMem_Malloc(sizeof(void *));
17511 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017512 p->error_indicator = 1;
17513 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017514 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017515 return NULL;
17516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017517 ssize_t _children_capacity = 1;
17518 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017519 { // ',' import_from_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017521 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017522 return NULL;
17523 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017524 D(fprintf(stderr, "%*c> _loop0_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017525 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017526 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017527 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017528 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017529 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017530 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017531 )
17532 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017533 _res = elem;
17534 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017535 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017536 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017537 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017538 return NULL;
17539 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017540 if (_n == _children_capacity) {
17541 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017542 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17543 if (!_new_children) {
17544 p->error_indicator = 1;
17545 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017546 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017547 return NULL;
17548 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017549 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017551 _children[_n++] = _res;
17552 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017554 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017555 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017557 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017558 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17559 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017560 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017561 p->error_indicator = 1;
17562 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017563 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017564 return NULL;
17565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017566 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17567 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017568 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017569 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017570 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017571}
17572
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017573// _gather_33: import_from_as_name _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017574static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017575_gather_33_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017576{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017577 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017578 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017579 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017580 return NULL;
17581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017582 asdl_seq * _res = NULL;
17583 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017584 { // import_from_as_name _loop0_34
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017585 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017586 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017587 return NULL;
17588 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017589 D(fprintf(stderr, "%*c> _gather_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017590 alias_ty elem;
17591 asdl_seq * seq;
17592 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017593 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017594 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017595 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017596 )
17597 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017598 D(fprintf(stderr, "%*c+ _gather_33[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017599 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017600 goto done;
17601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017602 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017603 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017606 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017607 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017608 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017609 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017610}
17611
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017612// _tmp_35: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017613static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017614_tmp_35_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017615{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017616 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017618 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017619 return NULL;
17620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017621 void * _res = NULL;
17622 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017623 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017624 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017625 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017626 return NULL;
17627 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017628 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017629 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017630 expr_ty z;
17631 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017632 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017633 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017634 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017635 )
17636 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017637 D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017638 _res = z;
17639 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017640 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017641 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017642 return NULL;
17643 }
17644 goto done;
17645 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017646 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017647 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017649 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017650 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017651 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017652 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017653 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017654}
17655
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017656// _loop0_37: ',' dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017657static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017658_loop0_37_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017659{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017660 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017661 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017663 return NULL;
17664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017665 void *_res = NULL;
17666 int _mark = p->mark;
17667 int _start_mark = p->mark;
17668 void **_children = PyMem_Malloc(sizeof(void *));
17669 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017670 p->error_indicator = 1;
17671 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017672 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017673 return NULL;
17674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017675 ssize_t _children_capacity = 1;
17676 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017677 { // ',' dotted_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017678 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017679 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017680 return NULL;
17681 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017682 D(fprintf(stderr, "%*c> _loop0_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017683 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017684 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017685 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017686 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017687 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017688 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017689 )
17690 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017691 _res = elem;
17692 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017693 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017694 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017695 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017696 return NULL;
17697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017698 if (_n == _children_capacity) {
17699 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017700 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17701 if (!_new_children) {
17702 p->error_indicator = 1;
17703 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017704 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017705 return NULL;
17706 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017707 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017709 _children[_n++] = _res;
17710 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017712 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017713 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017716 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17717 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017718 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017719 p->error_indicator = 1;
17720 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017721 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017722 return NULL;
17723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017724 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17725 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017726 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017727 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017728 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017729}
17730
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017731// _gather_36: dotted_as_name _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017732static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017733_gather_36_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017734{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017735 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017736 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017737 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017738 return NULL;
17739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017740 asdl_seq * _res = NULL;
17741 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017742 { // dotted_as_name _loop0_37
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017743 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017744 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017745 return NULL;
17746 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017747 D(fprintf(stderr, "%*c> _gather_36[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017748 alias_ty elem;
17749 asdl_seq * seq;
17750 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017751 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017752 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017753 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017754 )
17755 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017756 D(fprintf(stderr, "%*c+ _gather_36[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017757 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017758 goto done;
17759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017760 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017761 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
17762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017764 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017765 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017766 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017767 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017768}
17769
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017770// _tmp_38: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017771static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017772_tmp_38_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017773{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017774 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017776 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017777 return NULL;
17778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017779 void * _res = NULL;
17780 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017781 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017782 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017783 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017784 return NULL;
17785 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017786 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017787 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017788 expr_ty z;
17789 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017790 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017791 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017792 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017793 )
17794 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017795 D(fprintf(stderr, "%*c+ _tmp_38[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017796 _res = z;
17797 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017798 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017799 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017800 return NULL;
17801 }
17802 goto done;
17803 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017804 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017805 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017808 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017809 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017810 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017811 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017812}
17813
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017814// _loop0_40: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017815static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017816_loop0_40_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017817{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017818 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017820 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017821 return NULL;
17822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017823 void *_res = NULL;
17824 int _mark = p->mark;
17825 int _start_mark = p->mark;
17826 void **_children = PyMem_Malloc(sizeof(void *));
17827 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017828 p->error_indicator = 1;
17829 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017830 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017831 return NULL;
17832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017833 ssize_t _children_capacity = 1;
17834 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017835 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017836 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017837 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017838 return NULL;
17839 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017840 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017841 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017842 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017843 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017844 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017845 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017846 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017847 )
17848 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017849 _res = elem;
17850 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017851 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017852 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017853 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017854 return NULL;
17855 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017856 if (_n == _children_capacity) {
17857 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017858 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17859 if (!_new_children) {
17860 p->error_indicator = 1;
17861 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017862 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017863 return NULL;
17864 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017865 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017867 _children[_n++] = _res;
17868 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017869 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017870 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017871 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017873 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017874 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17875 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017876 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017877 p->error_indicator = 1;
17878 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017879 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017880 return NULL;
17881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017882 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17883 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017884 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017885 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017886 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017887}
17888
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017889// _gather_39: with_item _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017890static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017891_gather_39_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017892{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017893 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017894 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017895 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017896 return NULL;
17897 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017898 asdl_seq * _res = NULL;
17899 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017900 { // with_item _loop0_40
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017901 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017902 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017903 return NULL;
17904 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017905 D(fprintf(stderr, "%*c> _gather_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_40"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017906 withitem_ty elem;
17907 asdl_seq * seq;
17908 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017909 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017910 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017911 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017912 )
17913 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017914 D(fprintf(stderr, "%*c+ _gather_39[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_40"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017915 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017916 goto done;
17917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017918 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017919 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
17920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017922 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017923 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017924 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017925 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017926}
17927
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017928// _loop0_42: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017929static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017930_loop0_42_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017931{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017932 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017933 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017934 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017935 return NULL;
17936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017937 void *_res = NULL;
17938 int _mark = p->mark;
17939 int _start_mark = p->mark;
17940 void **_children = PyMem_Malloc(sizeof(void *));
17941 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017942 p->error_indicator = 1;
17943 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017944 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017945 return NULL;
17946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017947 ssize_t _children_capacity = 1;
17948 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017949 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017951 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017952 return NULL;
17953 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017954 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017955 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017956 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017957 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017958 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017959 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017960 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017961 )
17962 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017963 _res = elem;
17964 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017965 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017966 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017967 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017968 return NULL;
17969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017970 if (_n == _children_capacity) {
17971 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017972 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17973 if (!_new_children) {
17974 p->error_indicator = 1;
17975 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017976 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017977 return NULL;
17978 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017979 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017981 _children[_n++] = _res;
17982 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017984 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017985 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017988 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17989 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017990 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017991 p->error_indicator = 1;
17992 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017993 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017994 return NULL;
17995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017996 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17997 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017998 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017999 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018000 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018001}
18002
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018003// _gather_41: with_item _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018004static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018005_gather_41_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018006{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018007 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018008 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018009 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018010 return NULL;
18011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018012 asdl_seq * _res = NULL;
18013 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018014 { // with_item _loop0_42
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018015 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018016 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018017 return NULL;
18018 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018019 D(fprintf(stderr, "%*c> _gather_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_42"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018020 withitem_ty elem;
18021 asdl_seq * seq;
18022 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018023 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018024 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018025 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018026 )
18027 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018028 D(fprintf(stderr, "%*c+ _gather_41[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_42"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018029 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018030 goto done;
18031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018032 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018033 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018036 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018037 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018038 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018039 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018040}
18041
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018042// _loop0_44: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018043static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018044_loop0_44_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018045{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018046 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018047 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018048 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018049 return NULL;
18050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018051 void *_res = NULL;
18052 int _mark = p->mark;
18053 int _start_mark = p->mark;
18054 void **_children = PyMem_Malloc(sizeof(void *));
18055 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018056 p->error_indicator = 1;
18057 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018058 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018059 return NULL;
18060 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018061 ssize_t _children_capacity = 1;
18062 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018063 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018064 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018065 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018066 return NULL;
18067 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018068 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018069 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018070 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018071 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018072 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018073 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018074 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018075 )
18076 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018077 _res = elem;
18078 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018079 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018080 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018081 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018082 return NULL;
18083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018084 if (_n == _children_capacity) {
18085 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018086 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18087 if (!_new_children) {
18088 p->error_indicator = 1;
18089 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018090 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018091 return NULL;
18092 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018093 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018095 _children[_n++] = _res;
18096 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018098 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018099 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018102 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18103 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018104 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018105 p->error_indicator = 1;
18106 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018107 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018108 return NULL;
18109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018110 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18111 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018112 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018113 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018114 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018115}
18116
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018117// _gather_43: with_item _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018118static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018119_gather_43_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018120{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018121 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018122 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018123 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018124 return NULL;
18125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018126 asdl_seq * _res = NULL;
18127 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018128 { // with_item _loop0_44
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018130 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018131 return NULL;
18132 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018133 D(fprintf(stderr, "%*c> _gather_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_44"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018134 withitem_ty elem;
18135 asdl_seq * seq;
18136 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018137 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018138 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018139 (seq = _loop0_44_rule(p)) // _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018140 )
18141 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018142 D(fprintf(stderr, "%*c+ _gather_43[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_44"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018143 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018144 goto done;
18145 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018146 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018147 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018150 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018151 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018152 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018153 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018154}
18155
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018156// _loop0_46: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018157static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018158_loop0_46_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018159{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018160 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018161 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018162 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018163 return NULL;
18164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018165 void *_res = NULL;
18166 int _mark = p->mark;
18167 int _start_mark = p->mark;
18168 void **_children = PyMem_Malloc(sizeof(void *));
18169 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018170 p->error_indicator = 1;
18171 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018172 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018173 return NULL;
18174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018175 ssize_t _children_capacity = 1;
18176 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018177 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018178 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018179 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018180 return NULL;
18181 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018182 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018183 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018184 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018185 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018186 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018187 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018188 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018189 )
18190 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018191 _res = elem;
18192 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018193 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018194 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018195 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018196 return NULL;
18197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018198 if (_n == _children_capacity) {
18199 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018200 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18201 if (!_new_children) {
18202 p->error_indicator = 1;
18203 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018204 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018205 return NULL;
18206 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018207 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018208 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018209 _children[_n++] = _res;
18210 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018212 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018213 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018215 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018216 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18217 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018218 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018219 p->error_indicator = 1;
18220 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018221 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018222 return NULL;
18223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018224 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18225 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018226 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018227 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018228 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018229}
18230
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018231// _gather_45: with_item _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018232static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018233_gather_45_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018234{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018235 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018236 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018237 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018238 return NULL;
18239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018240 asdl_seq * _res = NULL;
18241 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018242 { // with_item _loop0_46
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018243 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018244 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018245 return NULL;
18246 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018247 D(fprintf(stderr, "%*c> _gather_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_46"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018248 withitem_ty elem;
18249 asdl_seq * seq;
18250 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018251 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018252 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018253 (seq = _loop0_46_rule(p)) // _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018254 )
18255 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018256 D(fprintf(stderr, "%*c+ _gather_45[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_46"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018257 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018258 goto done;
18259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018260 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018261 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018264 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018265 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018266 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018267 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018268}
18269
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018270// _tmp_47: ',' | ')' | ':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018271static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018272_tmp_47_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018273{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018274 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018275 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018276 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018277 return NULL;
18278 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018279 void * _res = NULL;
18280 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018281 { // ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018282 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018283 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018284 return NULL;
18285 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018286 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18287 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018288 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018289 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018290 )
18291 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018292 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18293 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018294 goto done;
18295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018296 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018297 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18299 }
18300 { // ')'
18301 if (p->error_indicator) {
18302 D(p->level--);
18303 return NULL;
18304 }
18305 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18306 Token * _literal;
18307 if (
18308 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18309 )
18310 {
18311 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18312 _res = _literal;
18313 goto done;
18314 }
18315 p->mark = _mark;
18316 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18318 }
18319 { // ':'
18320 if (p->error_indicator) {
18321 D(p->level--);
18322 return NULL;
18323 }
18324 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18325 Token * _literal;
18326 if (
18327 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18328 )
18329 {
18330 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18331 _res = _literal;
18332 goto done;
18333 }
18334 p->mark = _mark;
18335 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018338 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018339 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018340 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018341 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018342}
18343
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018344// _loop1_48: except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018345static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018346_loop1_48_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018347{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018348 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018349 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018350 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018351 return NULL;
18352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018353 void *_res = NULL;
18354 int _mark = p->mark;
18355 int _start_mark = p->mark;
18356 void **_children = PyMem_Malloc(sizeof(void *));
18357 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018358 p->error_indicator = 1;
18359 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018360 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018361 return NULL;
18362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018363 ssize_t _children_capacity = 1;
18364 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018365 { // except_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018367 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018368 return NULL;
18369 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018370 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018371 excepthandler_ty except_block_var;
18372 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018373 (except_block_var = except_block_rule(p)) // except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018374 )
18375 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018376 _res = except_block_var;
18377 if (_n == _children_capacity) {
18378 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018379 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18380 if (!_new_children) {
18381 p->error_indicator = 1;
18382 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018383 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018384 return NULL;
18385 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018386 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018388 _children[_n++] = _res;
18389 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018391 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018392 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018395 if (_n == 0 || p->error_indicator) {
18396 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018397 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018398 return NULL;
18399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018400 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18401 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018402 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018403 p->error_indicator = 1;
18404 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018405 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018406 return NULL;
18407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018408 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18409 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018410 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018411 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018412 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018413}
18414
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018415// _tmp_49: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018416static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018417_tmp_49_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018418{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018419 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018420 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018421 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018422 return NULL;
18423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018424 void * _res = NULL;
18425 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018426 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018427 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018428 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018429 return NULL;
18430 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018431 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018432 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018433 expr_ty z;
18434 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018435 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018436 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018437 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018438 )
18439 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018440 D(fprintf(stderr, "%*c+ _tmp_49[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018441 _res = z;
18442 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018443 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018444 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018445 return NULL;
18446 }
18447 goto done;
18448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018449 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018450 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018453 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018454 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018455 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018456 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018457}
18458
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018459// _tmp_50: 'from' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018460static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018461_tmp_50_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018462{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018463 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018464 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018465 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018466 return NULL;
18467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018468 void * _res = NULL;
18469 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018470 { // 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018471 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018472 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018473 return NULL;
18474 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018475 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018476 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018477 expr_ty z;
18478 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018479 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018480 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018481 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018482 )
18483 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018484 D(fprintf(stderr, "%*c+ _tmp_50[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018485 _res = z;
18486 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018487 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018488 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018489 return NULL;
18490 }
18491 goto done;
18492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018493 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018494 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018497 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018498 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018499 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018500 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018501}
18502
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018503// _tmp_51: '->' expression
Guido van Rossumc001c092020-04-30 12:12:19 -070018504static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018505_tmp_51_rule(Parser *p)
18506{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018507 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018508 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018509 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018510 return NULL;
18511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018512 void * _res = NULL;
18513 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018514 { // '->' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018515 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018516 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018517 return NULL;
18518 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018519 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018520 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018521 expr_ty z;
18522 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018523 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018524 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018525 (z = expression_rule(p)) // expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018526 )
18527 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018528 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018529 _res = z;
18530 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018531 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018532 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018533 return NULL;
18534 }
18535 goto done;
18536 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018537 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018538 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018541 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018542 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018543 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018544 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018545}
18546
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018547// _tmp_52: '->' expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018548static void *
18549_tmp_52_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018550{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018551 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018552 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018553 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018554 return NULL;
18555 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018556 void * _res = NULL;
18557 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018558 { // '->' expression
18559 if (p->error_indicator) {
18560 D(p->level--);
18561 return NULL;
18562 }
18563 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18564 Token * _literal;
18565 expr_ty z;
18566 if (
18567 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18568 &&
18569 (z = expression_rule(p)) // expression
18570 )
18571 {
18572 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18573 _res = z;
18574 if (_res == NULL && PyErr_Occurred()) {
18575 p->error_indicator = 1;
18576 D(p->level--);
18577 return NULL;
18578 }
18579 goto done;
18580 }
18581 p->mark = _mark;
18582 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18584 }
18585 _res = NULL;
18586 done:
18587 D(p->level--);
18588 return _res;
18589}
18590
18591// _tmp_53: NEWLINE INDENT
18592static void *
18593_tmp_53_rule(Parser *p)
18594{
18595 D(p->level++);
18596 if (p->error_indicator) {
18597 D(p->level--);
18598 return NULL;
18599 }
18600 void * _res = NULL;
18601 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018602 { // NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018603 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018604 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018605 return NULL;
18606 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018607 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010018608 Token * indent_var;
18609 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018610 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018611 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070018612 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018613 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070018614 )
18615 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018616 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018617 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
Guido van Rossumc001c092020-04-30 12:12:19 -070018618 goto done;
18619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018620 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018621 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018624 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070018625 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018626 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018627 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070018628}
18629
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018630// _loop0_54: param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018631static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018632_loop0_54_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018633{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018634 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018635 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018637 return NULL;
18638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018639 void *_res = NULL;
18640 int _mark = p->mark;
18641 int _start_mark = p->mark;
18642 void **_children = PyMem_Malloc(sizeof(void *));
18643 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018644 p->error_indicator = 1;
18645 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018646 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018647 return NULL;
18648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018649 ssize_t _children_capacity = 1;
18650 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018651 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018652 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018653 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018654 return NULL;
18655 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018656 D(fprintf(stderr, "%*c> _loop0_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018657 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018658 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018659 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018660 )
18661 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018662 _res = param_no_default_var;
18663 if (_n == _children_capacity) {
18664 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018665 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18666 if (!_new_children) {
18667 p->error_indicator = 1;
18668 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018669 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018670 return NULL;
18671 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018672 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018674 _children[_n++] = _res;
18675 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018677 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018678 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018681 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18682 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018683 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018684 p->error_indicator = 1;
18685 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018686 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018687 return NULL;
18688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018689 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18690 PyMem_Free(_children);
18691 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018692 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018693 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018694}
18695
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018696// _loop0_55: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018697static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018698_loop0_55_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018699{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018700 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018701 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018702 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018703 return NULL;
18704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018705 void *_res = NULL;
18706 int _mark = p->mark;
18707 int _start_mark = p->mark;
18708 void **_children = PyMem_Malloc(sizeof(void *));
18709 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018710 p->error_indicator = 1;
18711 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018712 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018713 return NULL;
18714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018715 ssize_t _children_capacity = 1;
18716 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018717 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018719 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018720 return NULL;
18721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018722 D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018723 NameDefaultPair* param_with_default_var;
18724 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018725 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018726 )
18727 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018728 _res = param_with_default_var;
18729 if (_n == _children_capacity) {
18730 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018731 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18732 if (!_new_children) {
18733 p->error_indicator = 1;
18734 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018735 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018736 return NULL;
18737 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018738 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018740 _children[_n++] = _res;
18741 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018743 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018744 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018747 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18748 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018749 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018750 p->error_indicator = 1;
18751 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018752 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018753 return NULL;
18754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018755 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18756 PyMem_Free(_children);
18757 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018758 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018759 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018760}
18761
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018762// _loop0_56: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018763static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018764_loop0_56_rule(Parser *p)
18765{
18766 D(p->level++);
18767 if (p->error_indicator) {
18768 D(p->level--);
18769 return NULL;
18770 }
18771 void *_res = NULL;
18772 int _mark = p->mark;
18773 int _start_mark = p->mark;
18774 void **_children = PyMem_Malloc(sizeof(void *));
18775 if (!_children) {
18776 p->error_indicator = 1;
18777 PyErr_NoMemory();
18778 D(p->level--);
18779 return NULL;
18780 }
18781 ssize_t _children_capacity = 1;
18782 ssize_t _n = 0;
18783 { // param_with_default
18784 if (p->error_indicator) {
18785 D(p->level--);
18786 return NULL;
18787 }
18788 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18789 NameDefaultPair* param_with_default_var;
18790 while (
18791 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18792 )
18793 {
18794 _res = param_with_default_var;
18795 if (_n == _children_capacity) {
18796 _children_capacity *= 2;
18797 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18798 if (!_new_children) {
18799 p->error_indicator = 1;
18800 PyErr_NoMemory();
18801 D(p->level--);
18802 return NULL;
18803 }
18804 _children = _new_children;
18805 }
18806 _children[_n++] = _res;
18807 _mark = p->mark;
18808 }
18809 p->mark = _mark;
18810 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
18811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18812 }
18813 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18814 if (!_seq) {
18815 PyMem_Free(_children);
18816 p->error_indicator = 1;
18817 PyErr_NoMemory();
18818 D(p->level--);
18819 return NULL;
18820 }
18821 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18822 PyMem_Free(_children);
18823 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
18824 D(p->level--);
18825 return _seq;
18826}
18827
18828// _loop1_57: param_no_default
18829static asdl_seq *
18830_loop1_57_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018831{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018832 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018833 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018834 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018835 return NULL;
18836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018837 void *_res = NULL;
18838 int _mark = p->mark;
18839 int _start_mark = p->mark;
18840 void **_children = PyMem_Malloc(sizeof(void *));
18841 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018842 p->error_indicator = 1;
18843 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018844 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018845 return NULL;
18846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018847 ssize_t _children_capacity = 1;
18848 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018849 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018850 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018851 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018852 return NULL;
18853 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018854 D(fprintf(stderr, "%*c> _loop1_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018855 arg_ty param_no_default_var;
18856 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018857 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018858 )
18859 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018860 _res = param_no_default_var;
18861 if (_n == _children_capacity) {
18862 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018863 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18864 if (!_new_children) {
18865 p->error_indicator = 1;
18866 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018867 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018868 return NULL;
18869 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018870 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018872 _children[_n++] = _res;
18873 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018875 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018876 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018879 if (_n == 0 || p->error_indicator) {
18880 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018881 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018882 return NULL;
18883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018884 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18885 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018886 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018887 p->error_indicator = 1;
18888 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018889 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018890 return NULL;
18891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018892 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18893 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018894 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018895 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018896 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018897}
18898
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018899// _loop0_58: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018900static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018901_loop0_58_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018902{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018903 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018905 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018906 return NULL;
18907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018908 void *_res = NULL;
18909 int _mark = p->mark;
18910 int _start_mark = p->mark;
18911 void **_children = PyMem_Malloc(sizeof(void *));
18912 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018913 p->error_indicator = 1;
18914 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018915 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018916 return NULL;
18917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018918 ssize_t _children_capacity = 1;
18919 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018920 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018921 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018922 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018923 return NULL;
18924 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018925 D(fprintf(stderr, "%*c> _loop0_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018926 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018927 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018928 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018929 )
18930 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018931 _res = param_with_default_var;
18932 if (_n == _children_capacity) {
18933 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018934 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18935 if (!_new_children) {
18936 p->error_indicator = 1;
18937 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018938 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018939 return NULL;
18940 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018941 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018942 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018943 _children[_n++] = _res;
18944 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018946 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018947 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018949 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018950 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18951 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018952 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018953 p->error_indicator = 1;
18954 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018955 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018956 return NULL;
18957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018958 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18959 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018960 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018961 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018962 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018963}
18964
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018965// _loop1_59: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018966static asdl_seq *
18967_loop1_59_rule(Parser *p)
18968{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018969 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018970 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018971 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018972 return NULL;
18973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018974 void *_res = NULL;
18975 int _mark = p->mark;
18976 int _start_mark = p->mark;
18977 void **_children = PyMem_Malloc(sizeof(void *));
18978 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018979 p->error_indicator = 1;
18980 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018981 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018982 return NULL;
18983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018984 ssize_t _children_capacity = 1;
18985 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018986 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018987 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018988 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018989 return NULL;
18990 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018991 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18992 NameDefaultPair* param_with_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018993 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018994 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018995 )
18996 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018997 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018998 if (_n == _children_capacity) {
18999 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019000 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19001 if (!_new_children) {
19002 p->error_indicator = 1;
19003 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019004 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019005 return NULL;
19006 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019007 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019008 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019009 _children[_n++] = _res;
19010 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019012 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019013 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019015 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019016 if (_n == 0 || p->error_indicator) {
19017 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019018 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019019 return NULL;
19020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019021 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19022 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019023 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019024 p->error_indicator = 1;
19025 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019026 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019027 return NULL;
19028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019029 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19030 PyMem_Free(_children);
19031 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019032 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019033 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019034}
19035
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019036// _loop1_60: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019037static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019038_loop1_60_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070019039{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019040 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070019041 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019042 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019043 return NULL;
19044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019045 void *_res = NULL;
19046 int _mark = p->mark;
19047 int _start_mark = p->mark;
19048 void **_children = PyMem_Malloc(sizeof(void *));
19049 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019050 p->error_indicator = 1;
19051 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019052 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019053 return NULL;
19054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019055 ssize_t _children_capacity = 1;
19056 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019057 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019058 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019059 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019060 return NULL;
19061 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019062 D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019063 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070019064 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019065 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019066 )
19067 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019068 _res = param_no_default_var;
19069 if (_n == _children_capacity) {
19070 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019071 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19072 if (!_new_children) {
19073 p->error_indicator = 1;
19074 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019075 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019076 return NULL;
19077 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019078 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019080 _children[_n++] = _res;
19081 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019083 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019084 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019087 if (_n == 0 || p->error_indicator) {
19088 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019089 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019090 return NULL;
19091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019092 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19093 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019094 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019095 p->error_indicator = 1;
19096 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019097 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019098 return NULL;
19099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019100 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19101 PyMem_Free(_children);
19102 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019103 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019104 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019105}
19106
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019107// _loop1_61: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019108static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019109_loop1_61_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019110{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019111 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019112 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019113 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019114 return NULL;
19115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019116 void *_res = NULL;
19117 int _mark = p->mark;
19118 int _start_mark = p->mark;
19119 void **_children = PyMem_Malloc(sizeof(void *));
19120 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019121 p->error_indicator = 1;
19122 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019123 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019124 return NULL;
19125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019126 ssize_t _children_capacity = 1;
19127 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019128 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019130 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019131 return NULL;
19132 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019133 D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019134 arg_ty param_no_default_var;
19135 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019136 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019137 )
19138 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019139 _res = param_no_default_var;
19140 if (_n == _children_capacity) {
19141 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019142 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19143 if (!_new_children) {
19144 p->error_indicator = 1;
19145 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019146 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019147 return NULL;
19148 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019149 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019151 _children[_n++] = _res;
19152 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019154 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019155 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019158 if (_n == 0 || p->error_indicator) {
19159 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019160 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019161 return NULL;
19162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019163 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19164 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019165 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019166 p->error_indicator = 1;
19167 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019168 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019169 return NULL;
19170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019171 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19172 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019173 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019174 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019175 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019176}
19177
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019178// _loop0_62: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019179static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019180_loop0_62_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019181{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019182 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019183 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019184 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019185 return NULL;
19186 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019187 void *_res = NULL;
19188 int _mark = p->mark;
19189 int _start_mark = p->mark;
19190 void **_children = PyMem_Malloc(sizeof(void *));
19191 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019192 p->error_indicator = 1;
19193 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019194 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019195 return NULL;
19196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019197 ssize_t _children_capacity = 1;
19198 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019199 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019200 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019201 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019202 return NULL;
19203 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019204 D(fprintf(stderr, "%*c> _loop0_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019205 arg_ty param_no_default_var;
19206 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019207 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019208 )
19209 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019210 _res = param_no_default_var;
19211 if (_n == _children_capacity) {
19212 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019213 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19214 if (!_new_children) {
19215 p->error_indicator = 1;
19216 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019217 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019218 return NULL;
19219 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019220 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019222 _children[_n++] = _res;
19223 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019225 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019226 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019229 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19230 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019231 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019232 p->error_indicator = 1;
19233 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019234 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019235 return NULL;
19236 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019237 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19238 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019239 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019240 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019241 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019242}
19243
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019244// _loop1_63: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019245static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019246_loop1_63_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019247{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019248 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019249 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019250 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019251 return NULL;
19252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019253 void *_res = NULL;
19254 int _mark = p->mark;
19255 int _start_mark = p->mark;
19256 void **_children = PyMem_Malloc(sizeof(void *));
19257 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019258 p->error_indicator = 1;
19259 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019260 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019261 return NULL;
19262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019263 ssize_t _children_capacity = 1;
19264 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019265 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019266 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019267 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019268 return NULL;
19269 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019270 D(fprintf(stderr, "%*c> _loop1_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019271 NameDefaultPair* param_with_default_var;
19272 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019273 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019274 )
19275 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019276 _res = param_with_default_var;
19277 if (_n == _children_capacity) {
19278 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019279 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19280 if (!_new_children) {
19281 p->error_indicator = 1;
19282 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019283 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019284 return NULL;
19285 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019286 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019288 _children[_n++] = _res;
19289 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019291 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019292 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019295 if (_n == 0 || p->error_indicator) {
19296 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019297 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019298 return NULL;
19299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019300 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19301 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019302 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019303 p->error_indicator = 1;
19304 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019305 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019306 return NULL;
19307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019308 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19309 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019310 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019311 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019312 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019313}
19314
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019315// _loop0_64: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019316static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019317_loop0_64_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019318{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019319 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019320 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019321 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019322 return NULL;
19323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019324 void *_res = NULL;
19325 int _mark = p->mark;
19326 int _start_mark = p->mark;
19327 void **_children = PyMem_Malloc(sizeof(void *));
19328 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019329 p->error_indicator = 1;
19330 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019331 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019332 return NULL;
19333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019334 ssize_t _children_capacity = 1;
19335 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019336 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019337 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019338 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019339 return NULL;
19340 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019341 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19342 arg_ty param_no_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019343 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019344 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019345 )
19346 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019347 _res = param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019348 if (_n == _children_capacity) {
19349 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019350 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19351 if (!_new_children) {
19352 p->error_indicator = 1;
19353 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019354 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019355 return NULL;
19356 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019357 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019359 _children[_n++] = _res;
19360 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019362 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019363 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019365 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019366 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19367 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019368 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019369 p->error_indicator = 1;
19370 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019371 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019372 return NULL;
19373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019374 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19375 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019376 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019377 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019378 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019379}
19380
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019381// _loop1_65: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019382static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019383_loop1_65_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019384{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019385 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019386 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019387 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019388 return NULL;
19389 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019390 void *_res = NULL;
19391 int _mark = p->mark;
19392 int _start_mark = p->mark;
19393 void **_children = PyMem_Malloc(sizeof(void *));
19394 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019395 p->error_indicator = 1;
19396 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019397 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019398 return NULL;
19399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019400 ssize_t _children_capacity = 1;
19401 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019402 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019405 return NULL;
19406 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019407 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19408 NameDefaultPair* param_with_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019409 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019410 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019411 )
19412 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019413 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019414 if (_n == _children_capacity) {
19415 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019416 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19417 if (!_new_children) {
19418 p->error_indicator = 1;
19419 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019420 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019421 return NULL;
19422 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019423 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019425 _children[_n++] = _res;
19426 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019427 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019428 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019429 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019431 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019432 if (_n == 0 || p->error_indicator) {
19433 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019434 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019435 return NULL;
19436 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019437 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19438 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019439 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019440 p->error_indicator = 1;
19441 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019442 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019443 return NULL;
19444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019445 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19446 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019447 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019448 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019449 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019450}
19451
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019452// _loop0_66: param_maybe_default
19453static asdl_seq *
19454_loop0_66_rule(Parser *p)
19455{
19456 D(p->level++);
19457 if (p->error_indicator) {
19458 D(p->level--);
19459 return NULL;
19460 }
19461 void *_res = NULL;
19462 int _mark = p->mark;
19463 int _start_mark = p->mark;
19464 void **_children = PyMem_Malloc(sizeof(void *));
19465 if (!_children) {
19466 p->error_indicator = 1;
19467 PyErr_NoMemory();
19468 D(p->level--);
19469 return NULL;
19470 }
19471 ssize_t _children_capacity = 1;
19472 ssize_t _n = 0;
19473 { // param_maybe_default
19474 if (p->error_indicator) {
19475 D(p->level--);
19476 return NULL;
19477 }
19478 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19479 NameDefaultPair* param_maybe_default_var;
19480 while (
19481 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19482 )
19483 {
19484 _res = param_maybe_default_var;
19485 if (_n == _children_capacity) {
19486 _children_capacity *= 2;
19487 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19488 if (!_new_children) {
19489 p->error_indicator = 1;
19490 PyErr_NoMemory();
19491 D(p->level--);
19492 return NULL;
19493 }
19494 _children = _new_children;
19495 }
19496 _children[_n++] = _res;
19497 _mark = p->mark;
19498 }
19499 p->mark = _mark;
19500 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19502 }
19503 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19504 if (!_seq) {
19505 PyMem_Free(_children);
19506 p->error_indicator = 1;
19507 PyErr_NoMemory();
19508 D(p->level--);
19509 return NULL;
19510 }
19511 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19512 PyMem_Free(_children);
19513 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19514 D(p->level--);
19515 return _seq;
19516}
19517
19518// _loop1_67: param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019519static asdl_seq *
19520_loop1_67_rule(Parser *p)
19521{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019522 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019523 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019524 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019525 return NULL;
19526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019527 void *_res = NULL;
19528 int _mark = p->mark;
19529 int _start_mark = p->mark;
19530 void **_children = PyMem_Malloc(sizeof(void *));
19531 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019532 p->error_indicator = 1;
19533 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019534 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019535 return NULL;
19536 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019537 ssize_t _children_capacity = 1;
19538 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019539 { // param_maybe_default
19540 if (p->error_indicator) {
19541 D(p->level--);
19542 return NULL;
19543 }
19544 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19545 NameDefaultPair* param_maybe_default_var;
19546 while (
19547 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19548 )
19549 {
19550 _res = param_maybe_default_var;
19551 if (_n == _children_capacity) {
19552 _children_capacity *= 2;
19553 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19554 if (!_new_children) {
19555 p->error_indicator = 1;
19556 PyErr_NoMemory();
19557 D(p->level--);
19558 return NULL;
19559 }
19560 _children = _new_children;
19561 }
19562 _children[_n++] = _res;
19563 _mark = p->mark;
19564 }
19565 p->mark = _mark;
19566 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19568 }
19569 if (_n == 0 || p->error_indicator) {
19570 PyMem_Free(_children);
19571 D(p->level--);
19572 return NULL;
19573 }
19574 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19575 if (!_seq) {
19576 PyMem_Free(_children);
19577 p->error_indicator = 1;
19578 PyErr_NoMemory();
19579 D(p->level--);
19580 return NULL;
19581 }
19582 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19583 PyMem_Free(_children);
19584 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19585 D(p->level--);
19586 return _seq;
19587}
19588
19589// _loop1_68: ('@' named_expression NEWLINE)
19590static asdl_seq *
19591_loop1_68_rule(Parser *p)
19592{
19593 D(p->level++);
19594 if (p->error_indicator) {
19595 D(p->level--);
19596 return NULL;
19597 }
19598 void *_res = NULL;
19599 int _mark = p->mark;
19600 int _start_mark = p->mark;
19601 void **_children = PyMem_Malloc(sizeof(void *));
19602 if (!_children) {
19603 p->error_indicator = 1;
19604 PyErr_NoMemory();
19605 D(p->level--);
19606 return NULL;
19607 }
19608 ssize_t _children_capacity = 1;
19609 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019610 { // ('@' named_expression NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019611 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019612 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019613 return NULL;
19614 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019615 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019616 void *_tmp_141_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019617 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019618 (_tmp_141_var = _tmp_141_rule(p)) // '@' named_expression NEWLINE
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019619 )
19620 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019621 _res = _tmp_141_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019622 if (_n == _children_capacity) {
19623 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019624 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19625 if (!_new_children) {
19626 p->error_indicator = 1;
19627 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019628 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019629 return NULL;
19630 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019631 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019633 _children[_n++] = _res;
19634 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019635 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019636 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019637 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019640 if (_n == 0 || p->error_indicator) {
19641 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019642 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019643 return NULL;
19644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019645 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19646 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019647 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019648 p->error_indicator = 1;
19649 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019650 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019651 return NULL;
19652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019653 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19654 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019655 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019656 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019657 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019658}
19659
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019660// _tmp_69: '(' arguments? ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019661static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019662_tmp_69_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019663{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019664 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019665 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019666 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019667 return NULL;
19668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019669 void * _res = NULL;
19670 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019671 { // '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019673 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019674 return NULL;
19675 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019676 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019677 Token * _literal;
19678 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019679 void *z;
19680 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019681 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019682 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019683 (z = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019684 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019685 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019686 )
19687 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019688 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019689 _res = z;
19690 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019691 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019692 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019693 return NULL;
19694 }
19695 goto done;
19696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019697 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019698 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019701 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019702 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019703 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019704 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019705}
19706
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019707// _loop0_71: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019708static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019709_loop0_71_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019710{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019711 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019712 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019713 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019714 return NULL;
19715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019716 void *_res = NULL;
19717 int _mark = p->mark;
19718 int _start_mark = p->mark;
19719 void **_children = PyMem_Malloc(sizeof(void *));
19720 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019721 p->error_indicator = 1;
19722 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019723 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019724 return NULL;
19725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019726 ssize_t _children_capacity = 1;
19727 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019728 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019729 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019730 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019731 return NULL;
19732 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019733 D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019734 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019735 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019736 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019737 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019738 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019739 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019740 )
19741 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019742 _res = elem;
19743 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019744 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019745 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019746 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019747 return NULL;
19748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019749 if (_n == _children_capacity) {
19750 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019751 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19752 if (!_new_children) {
19753 p->error_indicator = 1;
19754 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019755 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019756 return NULL;
19757 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019758 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019760 _children[_n++] = _res;
19761 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019763 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019764 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019767 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19768 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019769 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019770 p->error_indicator = 1;
19771 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019772 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019773 return NULL;
19774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019775 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19776 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019777 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019778 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019779 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019780}
19781
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019782// _gather_70: star_expression _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019783static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019784_gather_70_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019785{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019786 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019787 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019788 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019789 return NULL;
19790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019791 asdl_seq * _res = NULL;
19792 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019793 { // star_expression _loop0_71
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019795 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019796 return NULL;
19797 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019798 D(fprintf(stderr, "%*c> _gather_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression _loop0_71"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019799 expr_ty elem;
19800 asdl_seq * seq;
19801 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019802 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019803 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019804 (seq = _loop0_71_rule(p)) // _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019805 )
19806 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019807 D(fprintf(stderr, "%*c+ _gather_70[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression _loop0_71"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019808 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019809 goto done;
19810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019811 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019812 D(fprintf(stderr, "%*c%s _gather_70[%d-%d]: %s failed!\n", p->level, ' ',
19813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression _loop0_71"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019815 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019816 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019817 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019818 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019819}
19820
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019821// _loop1_72: (',' star_expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019822static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019823_loop1_72_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019824{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019825 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019826 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019827 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019828 return NULL;
19829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019830 void *_res = NULL;
19831 int _mark = p->mark;
19832 int _start_mark = p->mark;
19833 void **_children = PyMem_Malloc(sizeof(void *));
19834 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019835 p->error_indicator = 1;
19836 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019837 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019838 return NULL;
19839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019840 ssize_t _children_capacity = 1;
19841 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019842 { // (',' star_expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019843 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019844 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019845 return NULL;
19846 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019847 D(fprintf(stderr, "%*c> _loop1_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019848 void *_tmp_142_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019849 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019850 (_tmp_142_var = _tmp_142_rule(p)) // ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019851 )
19852 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030019853 _res = _tmp_142_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019854 if (_n == _children_capacity) {
19855 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019856 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19857 if (!_new_children) {
19858 p->error_indicator = 1;
19859 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019860 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019861 return NULL;
19862 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019863 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019865 _children[_n++] = _res;
19866 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019868 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019869 D(fprintf(stderr, "%*c%s _loop1_72[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019872 if (_n == 0 || p->error_indicator) {
19873 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019874 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019875 return NULL;
19876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019877 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19878 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019879 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019880 p->error_indicator = 1;
19881 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019882 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019883 return NULL;
19884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019885 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19886 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019887 _PyPegen_insert_memo(p, _start_mark, _loop1_72_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019888 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019889 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019890}
19891
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019892// _loop0_74: ',' star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019893static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019894_loop0_74_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019895{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019896 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019897 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019898 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019899 return NULL;
19900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019901 void *_res = NULL;
19902 int _mark = p->mark;
19903 int _start_mark = p->mark;
19904 void **_children = PyMem_Malloc(sizeof(void *));
19905 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019906 p->error_indicator = 1;
19907 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019909 return NULL;
19910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019911 ssize_t _children_capacity = 1;
19912 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019913 { // ',' star_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019914 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019915 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019916 return NULL;
19917 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019918 D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019919 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019920 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019921 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019922 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019923 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019924 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019925 )
19926 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019927 _res = elem;
19928 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019929 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019930 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019931 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019932 return NULL;
19933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019934 if (_n == _children_capacity) {
19935 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019936 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19937 if (!_new_children) {
19938 p->error_indicator = 1;
19939 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019940 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019941 return NULL;
19942 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019943 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019945 _children[_n++] = _res;
19946 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019947 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019948 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019949 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019952 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19953 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019954 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019955 p->error_indicator = 1;
19956 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019957 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019958 return NULL;
19959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019960 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19961 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019962 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019963 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019964 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019965}
19966
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019967// _gather_73: star_named_expression _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019968static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019969_gather_73_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019970{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019971 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019972 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019973 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019974 return NULL;
19975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019976 asdl_seq * _res = NULL;
19977 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019978 { // star_named_expression _loop0_74
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019980 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019981 return NULL;
19982 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019983 D(fprintf(stderr, "%*c> _gather_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_74"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019984 expr_ty elem;
19985 asdl_seq * seq;
19986 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019987 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019988 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019989 (seq = _loop0_74_rule(p)) // _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019990 )
19991 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019992 D(fprintf(stderr, "%*c+ _gather_73[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_74"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019993 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019994 goto done;
19995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019996 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019997 D(fprintf(stderr, "%*c%s _gather_73[%d-%d]: %s failed!\n", p->level, ' ',
19998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_74"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019999 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020000 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020001 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020002 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020003 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020004}
20005
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020006// _loop1_75: (',' expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020007static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020008_loop1_75_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020009{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020010 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020011 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020012 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020013 return NULL;
20014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020015 void *_res = NULL;
20016 int _mark = p->mark;
20017 int _start_mark = p->mark;
20018 void **_children = PyMem_Malloc(sizeof(void *));
20019 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020020 p->error_indicator = 1;
20021 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020022 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020023 return NULL;
20024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020025 ssize_t _children_capacity = 1;
20026 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020027 { // (',' expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020028 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020029 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020030 return NULL;
20031 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020032 D(fprintf(stderr, "%*c> _loop1_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030020033 void *_tmp_143_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020034 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030020035 (_tmp_143_var = _tmp_143_rule(p)) // ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020036 )
20037 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030020038 _res = _tmp_143_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020039 if (_n == _children_capacity) {
20040 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020041 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20042 if (!_new_children) {
20043 p->error_indicator = 1;
20044 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020045 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020046 return NULL;
20047 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020048 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020050 _children[_n++] = _res;
20051 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020053 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020054 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020057 if (_n == 0 || p->error_indicator) {
20058 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020059 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020060 return NULL;
20061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020062 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20063 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020064 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020065 p->error_indicator = 1;
20066 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020067 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020068 return NULL;
20069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020070 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20071 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020072 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020073 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020074 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020075}
20076
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020077// _loop0_76: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020078static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020079_loop0_76_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020080{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020081 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020082 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020083 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020084 return NULL;
20085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020086 void *_res = NULL;
20087 int _mark = p->mark;
20088 int _start_mark = p->mark;
20089 void **_children = PyMem_Malloc(sizeof(void *));
20090 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020091 p->error_indicator = 1;
20092 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020093 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020094 return NULL;
20095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020096 ssize_t _children_capacity = 1;
20097 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020098 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020100 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020101 return NULL;
20102 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020103 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020104 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020105 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020106 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020107 )
20108 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020109 _res = lambda_param_no_default_var;
20110 if (_n == _children_capacity) {
20111 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020112 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20113 if (!_new_children) {
20114 p->error_indicator = 1;
20115 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020116 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020117 return NULL;
20118 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020119 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020121 _children[_n++] = _res;
20122 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020124 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020125 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020128 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20129 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020130 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020131 p->error_indicator = 1;
20132 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020133 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020134 return NULL;
20135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020136 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20137 PyMem_Free(_children);
20138 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020139 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020140 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020141}
20142
Guido van Rossum3941d972020-05-01 09:42:03 -070020143// _loop0_77: lambda_param_with_default
20144static asdl_seq *
20145_loop0_77_rule(Parser *p)
20146{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020147 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020148 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020149 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020150 return NULL;
20151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020152 void *_res = NULL;
20153 int _mark = p->mark;
20154 int _start_mark = p->mark;
20155 void **_children = PyMem_Malloc(sizeof(void *));
20156 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020157 p->error_indicator = 1;
20158 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020159 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020160 return NULL;
20161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020162 ssize_t _children_capacity = 1;
20163 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020164 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020165 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020166 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020167 return NULL;
20168 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020169 D(fprintf(stderr, "%*c> _loop0_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020170 NameDefaultPair* lambda_param_with_default_var;
20171 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020172 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020173 )
20174 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020175 _res = lambda_param_with_default_var;
20176 if (_n == _children_capacity) {
20177 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020178 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20179 if (!_new_children) {
20180 p->error_indicator = 1;
20181 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020182 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020183 return NULL;
20184 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020185 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020186 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020187 _children[_n++] = _res;
20188 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020190 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020191 D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ',
20192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020194 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20195 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020196 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020197 p->error_indicator = 1;
20198 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020199 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020200 return NULL;
20201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020202 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20203 PyMem_Free(_children);
20204 _PyPegen_insert_memo(p, _start_mark, _loop0_77_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020205 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020206 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020207}
20208
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020209// _loop0_78: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020210static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020211_loop0_78_rule(Parser *p)
20212{
20213 D(p->level++);
20214 if (p->error_indicator) {
20215 D(p->level--);
20216 return NULL;
20217 }
20218 void *_res = NULL;
20219 int _mark = p->mark;
20220 int _start_mark = p->mark;
20221 void **_children = PyMem_Malloc(sizeof(void *));
20222 if (!_children) {
20223 p->error_indicator = 1;
20224 PyErr_NoMemory();
20225 D(p->level--);
20226 return NULL;
20227 }
20228 ssize_t _children_capacity = 1;
20229 ssize_t _n = 0;
20230 { // lambda_param_with_default
20231 if (p->error_indicator) {
20232 D(p->level--);
20233 return NULL;
20234 }
20235 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20236 NameDefaultPair* lambda_param_with_default_var;
20237 while (
20238 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20239 )
20240 {
20241 _res = lambda_param_with_default_var;
20242 if (_n == _children_capacity) {
20243 _children_capacity *= 2;
20244 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20245 if (!_new_children) {
20246 p->error_indicator = 1;
20247 PyErr_NoMemory();
20248 D(p->level--);
20249 return NULL;
20250 }
20251 _children = _new_children;
20252 }
20253 _children[_n++] = _res;
20254 _mark = p->mark;
20255 }
20256 p->mark = _mark;
20257 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20259 }
20260 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20261 if (!_seq) {
20262 PyMem_Free(_children);
20263 p->error_indicator = 1;
20264 PyErr_NoMemory();
20265 D(p->level--);
20266 return NULL;
20267 }
20268 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20269 PyMem_Free(_children);
20270 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20271 D(p->level--);
20272 return _seq;
20273}
20274
20275// _loop1_79: lambda_param_no_default
20276static asdl_seq *
20277_loop1_79_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020278{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020279 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020280 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020281 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020282 return NULL;
20283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020284 void *_res = NULL;
20285 int _mark = p->mark;
20286 int _start_mark = p->mark;
20287 void **_children = PyMem_Malloc(sizeof(void *));
20288 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020289 p->error_indicator = 1;
20290 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020291 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020292 return NULL;
20293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020294 ssize_t _children_capacity = 1;
20295 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020296 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020297 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020298 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020299 return NULL;
20300 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020301 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020302 arg_ty lambda_param_no_default_var;
20303 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020304 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020305 )
20306 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020307 _res = lambda_param_no_default_var;
20308 if (_n == _children_capacity) {
20309 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020310 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20311 if (!_new_children) {
20312 p->error_indicator = 1;
20313 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020314 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020315 return NULL;
20316 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020317 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020319 _children[_n++] = _res;
20320 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020322 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020323 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020326 if (_n == 0 || p->error_indicator) {
20327 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020328 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020329 return NULL;
20330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020331 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20332 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020333 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020334 p->error_indicator = 1;
20335 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020336 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020337 return NULL;
20338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020339 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20340 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020341 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020342 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020343 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020344}
20345
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020346// _loop0_80: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020347static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020348_loop0_80_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020349{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020350 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020351 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020352 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020353 return NULL;
20354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020355 void *_res = NULL;
20356 int _mark = p->mark;
20357 int _start_mark = p->mark;
20358 void **_children = PyMem_Malloc(sizeof(void *));
20359 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020360 p->error_indicator = 1;
20361 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020362 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020363 return NULL;
20364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020365 ssize_t _children_capacity = 1;
20366 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020367 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020369 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020370 return NULL;
20371 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020372 D(fprintf(stderr, "%*c> _loop0_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020373 NameDefaultPair* lambda_param_with_default_var;
20374 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020375 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020376 )
20377 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020378 _res = lambda_param_with_default_var;
20379 if (_n == _children_capacity) {
20380 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020381 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20382 if (!_new_children) {
20383 p->error_indicator = 1;
20384 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020385 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020386 return NULL;
20387 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020388 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020389 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020390 _children[_n++] = _res;
20391 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020393 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020394 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020397 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20398 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020399 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020400 p->error_indicator = 1;
20401 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020402 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020403 return NULL;
20404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020405 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20406 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020407 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020408 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020409 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020410}
20411
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020412// _loop1_81: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020413static asdl_seq *
20414_loop1_81_rule(Parser *p)
20415{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020416 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020417 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020418 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020419 return NULL;
20420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020421 void *_res = NULL;
20422 int _mark = p->mark;
20423 int _start_mark = p->mark;
20424 void **_children = PyMem_Malloc(sizeof(void *));
20425 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020426 p->error_indicator = 1;
20427 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020428 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020429 return NULL;
20430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020431 ssize_t _children_capacity = 1;
20432 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020433 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020435 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020436 return NULL;
20437 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020438 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20439 NameDefaultPair* lambda_param_with_default_var;
Guido van Rossum3941d972020-05-01 09:42:03 -070020440 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020441 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020442 )
20443 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020444 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020445 if (_n == _children_capacity) {
20446 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020447 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20448 if (!_new_children) {
20449 p->error_indicator = 1;
20450 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020451 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020452 return NULL;
20453 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020454 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020456 _children[_n++] = _res;
20457 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020459 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020460 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020462 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020463 if (_n == 0 || p->error_indicator) {
20464 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020465 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020466 return NULL;
20467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020468 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20469 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020470 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020471 p->error_indicator = 1;
20472 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020473 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020474 return NULL;
20475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020476 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20477 PyMem_Free(_children);
20478 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020479 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020480 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020481}
20482
20483// _loop1_82: lambda_param_no_default
20484static asdl_seq *
20485_loop1_82_rule(Parser *p)
20486{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020487 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020488 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020489 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020490 return NULL;
20491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020492 void *_res = NULL;
20493 int _mark = p->mark;
20494 int _start_mark = p->mark;
20495 void **_children = PyMem_Malloc(sizeof(void *));
20496 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020497 p->error_indicator = 1;
20498 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020499 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020500 return NULL;
20501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020502 ssize_t _children_capacity = 1;
20503 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020504 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020505 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020506 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020507 return NULL;
20508 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020509 D(fprintf(stderr, "%*c> _loop1_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020510 arg_ty lambda_param_no_default_var;
20511 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020512 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020513 )
20514 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020515 _res = lambda_param_no_default_var;
20516 if (_n == _children_capacity) {
20517 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020518 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20519 if (!_new_children) {
20520 p->error_indicator = 1;
20521 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020522 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020523 return NULL;
20524 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020525 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020527 _children[_n++] = _res;
20528 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020530 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020531 D(fprintf(stderr, "%*c%s _loop1_82[%d-%d]: %s failed!\n", p->level, ' ',
20532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020533 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020534 if (_n == 0 || p->error_indicator) {
20535 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020536 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020537 return NULL;
20538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020539 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20540 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020541 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020542 p->error_indicator = 1;
20543 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020544 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020545 return NULL;
20546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020547 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20548 PyMem_Free(_children);
20549 _PyPegen_insert_memo(p, _start_mark, _loop1_82_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020550 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020551 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020552}
20553
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020554// _loop1_83: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020555static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020556_loop1_83_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020557{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020558 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020559 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020560 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020561 return NULL;
20562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020563 void *_res = NULL;
20564 int _mark = p->mark;
20565 int _start_mark = p->mark;
20566 void **_children = PyMem_Malloc(sizeof(void *));
20567 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020568 p->error_indicator = 1;
20569 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020570 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020571 return NULL;
20572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020573 ssize_t _children_capacity = 1;
20574 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020575 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020578 return NULL;
20579 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020580 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020581 arg_ty lambda_param_no_default_var;
20582 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020583 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020584 )
20585 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020586 _res = lambda_param_no_default_var;
20587 if (_n == _children_capacity) {
20588 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020589 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20590 if (!_new_children) {
20591 p->error_indicator = 1;
20592 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020593 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020594 return NULL;
20595 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020596 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020598 _children[_n++] = _res;
20599 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020601 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020602 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020605 if (_n == 0 || p->error_indicator) {
20606 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020607 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020608 return NULL;
20609 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020610 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20611 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020612 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020613 p->error_indicator = 1;
20614 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020615 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020616 return NULL;
20617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020618 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20619 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020620 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020621 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020622 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020623}
20624
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020625// _loop0_84: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020626static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020627_loop0_84_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020628{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020629 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020630 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020631 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020632 return NULL;
20633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020634 void *_res = NULL;
20635 int _mark = p->mark;
20636 int _start_mark = p->mark;
20637 void **_children = PyMem_Malloc(sizeof(void *));
20638 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020639 p->error_indicator = 1;
20640 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020641 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020642 return NULL;
20643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020644 ssize_t _children_capacity = 1;
20645 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020646 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020647 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020648 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020649 return NULL;
20650 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020651 D(fprintf(stderr, "%*c> _loop0_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020652 arg_ty lambda_param_no_default_var;
20653 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020654 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020655 )
20656 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020657 _res = lambda_param_no_default_var;
20658 if (_n == _children_capacity) {
20659 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020660 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20661 if (!_new_children) {
20662 p->error_indicator = 1;
20663 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020664 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020665 return NULL;
20666 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020667 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020669 _children[_n++] = _res;
20670 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020672 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020673 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020676 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20677 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020678 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020679 p->error_indicator = 1;
20680 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020681 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020682 return NULL;
20683 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020684 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20685 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020686 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020687 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020688 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020689}
20690
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020691// _loop1_85: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020692static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020693_loop1_85_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020694{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020695 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020696 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020698 return NULL;
20699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020700 void *_res = NULL;
20701 int _mark = p->mark;
20702 int _start_mark = p->mark;
20703 void **_children = PyMem_Malloc(sizeof(void *));
20704 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020705 p->error_indicator = 1;
20706 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020707 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020708 return NULL;
20709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020710 ssize_t _children_capacity = 1;
20711 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020712 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020713 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020714 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020715 return NULL;
20716 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020717 D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020718 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020719 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020720 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020721 )
20722 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020723 _res = lambda_param_with_default_var;
20724 if (_n == _children_capacity) {
20725 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020726 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20727 if (!_new_children) {
20728 p->error_indicator = 1;
20729 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020730 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020731 return NULL;
20732 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020733 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020735 _children[_n++] = _res;
20736 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020738 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020739 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020742 if (_n == 0 || p->error_indicator) {
20743 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020744 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020745 return NULL;
20746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020747 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20748 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020749 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020750 p->error_indicator = 1;
20751 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020752 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020753 return NULL;
20754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020755 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20756 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020757 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020758 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020759 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020760}
20761
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020762// _loop0_86: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020763static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020764_loop0_86_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020765{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020766 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020768 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020769 return NULL;
20770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020771 void *_res = NULL;
20772 int _mark = p->mark;
20773 int _start_mark = p->mark;
20774 void **_children = PyMem_Malloc(sizeof(void *));
20775 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020776 p->error_indicator = 1;
20777 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020778 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020779 return NULL;
20780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020781 ssize_t _children_capacity = 1;
20782 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020783 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020784 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020785 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020786 return NULL;
20787 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020788 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20789 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020790 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020791 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020792 )
20793 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020794 _res = lambda_param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020795 if (_n == _children_capacity) {
20796 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020797 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20798 if (!_new_children) {
20799 p->error_indicator = 1;
20800 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020801 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020802 return NULL;
20803 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020804 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020806 _children[_n++] = _res;
20807 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020809 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020810 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
20811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020813 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20814 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020815 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020816 p->error_indicator = 1;
20817 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020819 return NULL;
20820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020821 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20822 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020823 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020824 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020825 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020826}
20827
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020828// _loop1_87: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020829static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020830_loop1_87_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020831{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020832 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020833 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020834 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020835 return NULL;
20836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020837 void *_res = NULL;
20838 int _mark = p->mark;
20839 int _start_mark = p->mark;
20840 void **_children = PyMem_Malloc(sizeof(void *));
20841 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020842 p->error_indicator = 1;
20843 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020844 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020845 return NULL;
20846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020847 ssize_t _children_capacity = 1;
20848 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020849 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020850 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020851 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020852 return NULL;
20853 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020854 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20855 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020856 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020857 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020858 )
20859 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020860 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020861 if (_n == _children_capacity) {
20862 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020863 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20864 if (!_new_children) {
20865 p->error_indicator = 1;
20866 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020867 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020868 return NULL;
20869 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020870 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020872 _children[_n++] = _res;
20873 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020875 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020876 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
20877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020879 if (_n == 0 || p->error_indicator) {
20880 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020881 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020882 return NULL;
20883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020884 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20885 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020886 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020887 p->error_indicator = 1;
20888 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020889 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020890 return NULL;
20891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020892 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20893 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020894 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020895 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020896 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020897}
20898
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020899// _loop0_88: lambda_param_maybe_default
20900static asdl_seq *
20901_loop0_88_rule(Parser *p)
20902{
20903 D(p->level++);
20904 if (p->error_indicator) {
20905 D(p->level--);
20906 return NULL;
20907 }
20908 void *_res = NULL;
20909 int _mark = p->mark;
20910 int _start_mark = p->mark;
20911 void **_children = PyMem_Malloc(sizeof(void *));
20912 if (!_children) {
20913 p->error_indicator = 1;
20914 PyErr_NoMemory();
20915 D(p->level--);
20916 return NULL;
20917 }
20918 ssize_t _children_capacity = 1;
20919 ssize_t _n = 0;
20920 { // lambda_param_maybe_default
20921 if (p->error_indicator) {
20922 D(p->level--);
20923 return NULL;
20924 }
20925 D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20926 NameDefaultPair* lambda_param_maybe_default_var;
20927 while (
20928 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
20929 )
20930 {
20931 _res = lambda_param_maybe_default_var;
20932 if (_n == _children_capacity) {
20933 _children_capacity *= 2;
20934 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20935 if (!_new_children) {
20936 p->error_indicator = 1;
20937 PyErr_NoMemory();
20938 D(p->level--);
20939 return NULL;
20940 }
20941 _children = _new_children;
20942 }
20943 _children[_n++] = _res;
20944 _mark = p->mark;
20945 }
20946 p->mark = _mark;
20947 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
20948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
20949 }
20950 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20951 if (!_seq) {
20952 PyMem_Free(_children);
20953 p->error_indicator = 1;
20954 PyErr_NoMemory();
20955 D(p->level--);
20956 return NULL;
20957 }
20958 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20959 PyMem_Free(_children);
20960 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
20961 D(p->level--);
20962 return _seq;
20963}
20964
20965// _loop1_89: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020966static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020967_loop1_89_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020968{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020969 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020970 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020971 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020972 return NULL;
20973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020974 void *_res = NULL;
20975 int _mark = p->mark;
20976 int _start_mark = p->mark;
20977 void **_children = PyMem_Malloc(sizeof(void *));
20978 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020979 p->error_indicator = 1;
20980 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020981 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020982 return NULL;
20983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020984 ssize_t _children_capacity = 1;
20985 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020986 { // lambda_param_maybe_default
20987 if (p->error_indicator) {
20988 D(p->level--);
20989 return NULL;
20990 }
20991 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20992 NameDefaultPair* lambda_param_maybe_default_var;
20993 while (
20994 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
20995 )
20996 {
20997 _res = lambda_param_maybe_default_var;
20998 if (_n == _children_capacity) {
20999 _children_capacity *= 2;
21000 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21001 if (!_new_children) {
21002 p->error_indicator = 1;
21003 PyErr_NoMemory();
21004 D(p->level--);
21005 return NULL;
21006 }
21007 _children = _new_children;
21008 }
21009 _children[_n++] = _res;
21010 _mark = p->mark;
21011 }
21012 p->mark = _mark;
21013 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
21014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
21015 }
21016 if (_n == 0 || p->error_indicator) {
21017 PyMem_Free(_children);
21018 D(p->level--);
21019 return NULL;
21020 }
21021 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21022 if (!_seq) {
21023 PyMem_Free(_children);
21024 p->error_indicator = 1;
21025 PyErr_NoMemory();
21026 D(p->level--);
21027 return NULL;
21028 }
21029 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21030 PyMem_Free(_children);
21031 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
21032 D(p->level--);
21033 return _seq;
21034}
21035
21036// _loop1_90: ('or' conjunction)
21037static asdl_seq *
21038_loop1_90_rule(Parser *p)
21039{
21040 D(p->level++);
21041 if (p->error_indicator) {
21042 D(p->level--);
21043 return NULL;
21044 }
21045 void *_res = NULL;
21046 int _mark = p->mark;
21047 int _start_mark = p->mark;
21048 void **_children = PyMem_Malloc(sizeof(void *));
21049 if (!_children) {
21050 p->error_indicator = 1;
21051 PyErr_NoMemory();
21052 D(p->level--);
21053 return NULL;
21054 }
21055 ssize_t _children_capacity = 1;
21056 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021057 { // ('or' conjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021058 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021059 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021060 return NULL;
21061 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021062 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021063 void *_tmp_144_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021064 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021065 (_tmp_144_var = _tmp_144_rule(p)) // 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021066 )
21067 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021068 _res = _tmp_144_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021069 if (_n == _children_capacity) {
21070 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021071 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21072 if (!_new_children) {
21073 p->error_indicator = 1;
21074 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021075 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021076 return NULL;
21077 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021078 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021080 _children[_n++] = _res;
21081 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021083 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021084 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021087 if (_n == 0 || p->error_indicator) {
21088 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021089 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021090 return NULL;
21091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021092 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21093 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021094 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021095 p->error_indicator = 1;
21096 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021097 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021098 return NULL;
21099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021100 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21101 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021102 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021103 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021104 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021105}
21106
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021107// _loop1_91: ('and' inversion)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021108static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021109_loop1_91_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021110{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021111 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021112 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021114 return NULL;
21115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021116 void *_res = NULL;
21117 int _mark = p->mark;
21118 int _start_mark = p->mark;
21119 void **_children = PyMem_Malloc(sizeof(void *));
21120 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021121 p->error_indicator = 1;
21122 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021123 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021124 return NULL;
21125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021126 ssize_t _children_capacity = 1;
21127 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021128 { // ('and' inversion)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021130 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021131 return NULL;
21132 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021133 D(fprintf(stderr, "%*c> _loop1_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021134 void *_tmp_145_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021135 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021136 (_tmp_145_var = _tmp_145_rule(p)) // 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021137 )
21138 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030021139 _res = _tmp_145_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021140 if (_n == _children_capacity) {
21141 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021142 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21143 if (!_new_children) {
21144 p->error_indicator = 1;
21145 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021146 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021147 return NULL;
21148 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021149 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021151 _children[_n++] = _res;
21152 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021154 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021155 D(fprintf(stderr, "%*c%s _loop1_91[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021158 if (_n == 0 || p->error_indicator) {
21159 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021160 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021161 return NULL;
21162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021163 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21164 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021165 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021166 p->error_indicator = 1;
21167 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021168 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021169 return NULL;
21170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021171 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21172 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021173 _PyPegen_insert_memo(p, _start_mark, _loop1_91_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021174 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021175 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021176}
21177
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021178// _loop1_92: compare_op_bitwise_or_pair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021179static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021180_loop1_92_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021181{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021182 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021183 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021184 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021185 return NULL;
21186 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021187 void *_res = NULL;
21188 int _mark = p->mark;
21189 int _start_mark = p->mark;
21190 void **_children = PyMem_Malloc(sizeof(void *));
21191 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021192 p->error_indicator = 1;
21193 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021194 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021195 return NULL;
21196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021197 ssize_t _children_capacity = 1;
21198 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021199 { // compare_op_bitwise_or_pair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021200 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021201 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021202 return NULL;
21203 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021204 D(fprintf(stderr, "%*c> _loop1_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021205 CmpopExprPair* compare_op_bitwise_or_pair_var;
21206 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021207 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021208 )
21209 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021210 _res = compare_op_bitwise_or_pair_var;
21211 if (_n == _children_capacity) {
21212 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021213 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21214 if (!_new_children) {
21215 p->error_indicator = 1;
21216 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021217 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021218 return NULL;
21219 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021220 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021222 _children[_n++] = _res;
21223 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021225 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021226 D(fprintf(stderr, "%*c%s _loop1_92[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021229 if (_n == 0 || p->error_indicator) {
21230 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021232 return NULL;
21233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021234 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21235 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021236 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021237 p->error_indicator = 1;
21238 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021239 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021240 return NULL;
21241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021242 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21243 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021244 _PyPegen_insert_memo(p, _start_mark, _loop1_92_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021245 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021246 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021247}
21248
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021249// _tmp_93: '!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021250static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021251_tmp_93_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021252{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021253 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021254 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021255 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021256 return NULL;
21257 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021258 void * _res = NULL;
21259 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021260 { // '!='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021261 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021262 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021263 return NULL;
21264 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021265 D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010021266 Token * tok;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021267 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021268 (tok = _PyPegen_expect_token(p, 28)) // token='!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021269 )
21270 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021271 D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021272 _res = _PyPegen_check_barry_as_flufl ( p ) ? NULL : tok;
21273 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindo2b74c832020-04-27 18:02:07 +010021274 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021275 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021276 return NULL;
21277 }
21278 goto done;
21279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021280 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021281 D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010021283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021284 _res = NULL;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021285 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021286 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021287 return _res;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021288}
21289
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021290// _loop0_95: ',' slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021291static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021292_loop0_95_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021293{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021294 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021295 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021296 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021297 return NULL;
21298 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021299 void *_res = NULL;
21300 int _mark = p->mark;
21301 int _start_mark = p->mark;
21302 void **_children = PyMem_Malloc(sizeof(void *));
21303 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021304 p->error_indicator = 1;
21305 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021306 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021307 return NULL;
21308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021309 ssize_t _children_capacity = 1;
21310 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021311 { // ',' slice
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021312 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021313 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021314 return NULL;
21315 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021316 D(fprintf(stderr, "%*c> _loop0_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021317 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021318 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021319 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021320 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021321 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021322 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021323 )
21324 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021325 _res = elem;
21326 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021327 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021328 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021329 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021330 return NULL;
21331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021332 if (_n == _children_capacity) {
21333 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021334 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21335 if (!_new_children) {
21336 p->error_indicator = 1;
21337 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021338 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021339 return NULL;
21340 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021341 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021343 _children[_n++] = _res;
21344 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021346 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021347 D(fprintf(stderr, "%*c%s _loop0_95[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021350 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21351 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021352 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021353 p->error_indicator = 1;
21354 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021355 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021356 return NULL;
21357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021358 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21359 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021360 _PyPegen_insert_memo(p, _start_mark, _loop0_95_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021361 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021362 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021363}
21364
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021365// _gather_94: slice _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021366static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021367_gather_94_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021368{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021369 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021370 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021371 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021372 return NULL;
21373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021374 asdl_seq * _res = NULL;
21375 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021376 { // slice _loop0_95
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021377 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021378 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021379 return NULL;
21380 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021381 D(fprintf(stderr, "%*c> _gather_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_95"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021382 expr_ty elem;
21383 asdl_seq * seq;
21384 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021385 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021386 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021387 (seq = _loop0_95_rule(p)) // _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021388 )
21389 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021390 D(fprintf(stderr, "%*c+ _gather_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice _loop0_95"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021391 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021392 goto done;
21393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021394 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021395 D(fprintf(stderr, "%*c%s _gather_94[%d-%d]: %s failed!\n", p->level, ' ',
21396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_95"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021398 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021399 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021400 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021401 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021402}
21403
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021404// _tmp_96: ':' expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021405static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021406_tmp_96_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021407{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021408 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021411 return NULL;
21412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021413 void * _res = NULL;
21414 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021415 { // ':' expression?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021416 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021417 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021418 return NULL;
21419 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021420 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021421 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021422 void *d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021423 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021424 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021425 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021426 (d = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021427 )
21428 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021429 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021430 _res = d;
21431 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021432 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021433 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021434 return NULL;
21435 }
21436 goto done;
21437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021438 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021439 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021441 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021442 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021443 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021444 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021445 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021446}
21447
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021448// _tmp_97: tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021449static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021450_tmp_97_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021451{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021452 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021453 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021454 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021455 return NULL;
21456 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021457 void * _res = NULL;
21458 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021459 { // tuple
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021460 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021461 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021462 return NULL;
21463 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021464 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021465 expr_ty tuple_var;
21466 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021467 (tuple_var = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021468 )
21469 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021470 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021471 _res = tuple_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021472 goto done;
21473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021474 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021475 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021477 }
21478 { // group
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021479 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021480 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021481 return NULL;
21482 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021483 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021484 expr_ty group_var;
21485 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021486 (group_var = group_rule(p)) // group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021487 )
21488 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021489 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021490 _res = group_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021491 goto done;
21492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021493 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021494 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021496 }
21497 { // genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021498 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021499 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021500 return NULL;
21501 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021502 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021503 expr_ty genexp_var;
21504 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021505 (genexp_var = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021506 )
21507 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021508 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021509 _res = genexp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021510 goto done;
21511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021512 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021513 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021516 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021517 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021518 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021519 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021520}
21521
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021522// _tmp_98: list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021523static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021524_tmp_98_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021525{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021526 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021527 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021528 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021529 return NULL;
21530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021531 void * _res = NULL;
21532 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021533 { // list
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021534 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021535 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021536 return NULL;
21537 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021538 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021539 expr_ty list_var;
21540 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021541 (list_var = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021542 )
21543 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021544 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021545 _res = list_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021546 goto done;
21547 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021548 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021549 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021551 }
21552 { // listcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021553 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021554 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021555 return NULL;
21556 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021557 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021558 expr_ty listcomp_var;
21559 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021560 (listcomp_var = listcomp_rule(p)) // listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021561 )
21562 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021563 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021564 _res = listcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021565 goto done;
21566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021567 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021568 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021571 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021572 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021573 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021574 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021575}
21576
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021577// _tmp_99: dict | set | dictcomp | setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021578static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021579_tmp_99_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021580{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021581 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021582 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021583 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021584 return NULL;
21585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021586 void * _res = NULL;
21587 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021588 { // dict
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021589 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021590 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021591 return NULL;
21592 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021593 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021594 expr_ty dict_var;
21595 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021596 (dict_var = dict_rule(p)) // dict
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021597 )
21598 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021599 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021600 _res = dict_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021601 goto done;
21602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021603 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021604 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021606 }
21607 { // set
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021608 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021609 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021610 return NULL;
21611 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021612 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021613 expr_ty set_var;
21614 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021615 (set_var = set_rule(p)) // set
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021616 )
21617 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021618 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021619 _res = set_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021620 goto done;
21621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021622 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021623 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021625 }
21626 { // dictcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021627 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021628 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021629 return NULL;
21630 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021631 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021632 expr_ty dictcomp_var;
21633 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021634 (dictcomp_var = dictcomp_rule(p)) // dictcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021635 )
21636 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021637 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021638 _res = dictcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021639 goto done;
21640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021641 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021642 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021644 }
21645 { // setcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021646 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021647 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021648 return NULL;
21649 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021650 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021651 expr_ty setcomp_var;
21652 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021653 (setcomp_var = setcomp_rule(p)) // setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021654 )
21655 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021656 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021657 _res = setcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021658 goto done;
21659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021660 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021661 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021664 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021665 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021666 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021667 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021668}
21669
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021670// _loop1_100: STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021671static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021672_loop1_100_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021673{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021674 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021675 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021676 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021677 return NULL;
21678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021679 void *_res = NULL;
21680 int _mark = p->mark;
21681 int _start_mark = p->mark;
21682 void **_children = PyMem_Malloc(sizeof(void *));
21683 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021684 p->error_indicator = 1;
21685 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021686 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021687 return NULL;
21688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021689 ssize_t _children_capacity = 1;
21690 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021691 { // STRING
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021692 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021693 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021694 return NULL;
21695 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021696 D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021697 expr_ty string_var;
21698 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021699 (string_var = _PyPegen_string_token(p)) // STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021700 )
21701 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021702 _res = string_var;
21703 if (_n == _children_capacity) {
21704 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021705 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21706 if (!_new_children) {
21707 p->error_indicator = 1;
21708 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021709 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021710 return NULL;
21711 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021712 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021714 _children[_n++] = _res;
21715 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021717 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021718 D(fprintf(stderr, "%*c%s _loop1_100[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021721 if (_n == 0 || p->error_indicator) {
21722 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021723 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021724 return NULL;
21725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021726 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21727 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021728 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021729 p->error_indicator = 1;
21730 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021731 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021732 return NULL;
21733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021734 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21735 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021736 _PyPegen_insert_memo(p, _start_mark, _loop1_100_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021737 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021738 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021739}
21740
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021741// _tmp_101: star_named_expression ',' star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021742static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021743_tmp_101_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021744{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021745 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021746 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021747 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021748 return NULL;
21749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021750 void * _res = NULL;
21751 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021752 { // star_named_expression ',' star_named_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021753 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021754 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021755 return NULL;
21756 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021757 D(fprintf(stderr, "%*c> _tmp_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021758 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021759 expr_ty y;
21760 void *z;
21761 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021762 (y = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021763 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021764 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021765 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021766 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021767 )
21768 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021769 D(fprintf(stderr, "%*c+ _tmp_101[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021770 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21771 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021772 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021773 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021774 return NULL;
21775 }
21776 goto done;
21777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021778 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021779 D(fprintf(stderr, "%*c%s _tmp_101[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021782 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021783 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021784 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021785 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021786}
21787
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021788// _tmp_102: yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021789static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021790_tmp_102_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021791{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021792 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021793 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021794 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021795 return NULL;
21796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021797 void * _res = NULL;
21798 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021799 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021800 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021801 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021802 return NULL;
21803 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021804 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021805 expr_ty yield_expr_var;
21806 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021807 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021808 )
21809 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021810 D(fprintf(stderr, "%*c+ _tmp_102[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021811 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021812 goto done;
21813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021814 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021815 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021817 }
21818 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021820 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021821 return NULL;
21822 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021823 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021824 expr_ty named_expression_var;
21825 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021826 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021827 )
21828 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021829 D(fprintf(stderr, "%*c+ _tmp_102[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021830 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021831 goto done;
21832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021833 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021834 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021837 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021838 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021839 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021840 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021841}
21842
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021843// _loop0_104: ',' double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021844static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021845_loop0_104_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021846{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021847 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021850 return NULL;
21851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021852 void *_res = NULL;
21853 int _mark = p->mark;
21854 int _start_mark = p->mark;
21855 void **_children = PyMem_Malloc(sizeof(void *));
21856 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021857 p->error_indicator = 1;
21858 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021859 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021860 return NULL;
21861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021862 ssize_t _children_capacity = 1;
21863 ssize_t _n = 0;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021864 { // ',' double_starred_kvpair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021865 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021866 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021867 return NULL;
21868 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021869 D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021870 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021871 KeyValuePair* elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021872 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021873 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021874 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021875 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021876 )
21877 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021878 _res = elem;
21879 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021880 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021881 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021882 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021883 return NULL;
21884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021885 if (_n == _children_capacity) {
21886 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021887 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21888 if (!_new_children) {
21889 p->error_indicator = 1;
21890 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021891 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021892 return NULL;
21893 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021894 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021896 _children[_n++] = _res;
21897 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021899 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021900 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021903 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21904 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021905 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021906 p->error_indicator = 1;
21907 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021909 return NULL;
21910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021911 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21912 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021913 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021914 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021915 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021916}
21917
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021918// _gather_103: double_starred_kvpair _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021919static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021920_gather_103_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021921{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021922 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021923 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021924 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021925 return NULL;
21926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021927 asdl_seq * _res = NULL;
21928 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021929 { // double_starred_kvpair _loop0_104
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021930 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021931 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021932 return NULL;
21933 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021934 D(fprintf(stderr, "%*c> _gather_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_104"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021935 KeyValuePair* elem;
21936 asdl_seq * seq;
21937 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021938 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021939 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021940 (seq = _loop0_104_rule(p)) // _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021941 )
21942 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021943 D(fprintf(stderr, "%*c+ _gather_103[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_104"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021944 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021945 goto done;
21946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021947 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021948 D(fprintf(stderr, "%*c%s _gather_103[%d-%d]: %s failed!\n", p->level, ' ',
21949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_104"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021951 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021952 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021953 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021954 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021955}
21956
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021957// _loop1_105: for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021958static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021959_loop1_105_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021960{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021961 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021962 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021963 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021964 return NULL;
21965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021966 void *_res = NULL;
21967 int _mark = p->mark;
21968 int _start_mark = p->mark;
21969 void **_children = PyMem_Malloc(sizeof(void *));
21970 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021971 p->error_indicator = 1;
21972 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021973 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021974 return NULL;
21975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021976 ssize_t _children_capacity = 1;
21977 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021978 { // for_if_clause
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021980 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021981 return NULL;
21982 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021983 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021984 comprehension_ty for_if_clause_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021985 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021986 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021987 )
21988 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021989 _res = for_if_clause_var;
21990 if (_n == _children_capacity) {
21991 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021992 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21993 if (!_new_children) {
21994 p->error_indicator = 1;
21995 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021996 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021997 return NULL;
21998 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021999 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022001 _children[_n++] = _res;
22002 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022004 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022005 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022008 if (_n == 0 || p->error_indicator) {
22009 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022010 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022011 return NULL;
22012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022013 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22014 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022015 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022016 p->error_indicator = 1;
22017 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022018 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022019 return NULL;
22020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022021 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22022 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022023 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022024 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022025 return _seq;
Pablo Galindo2b74c832020-04-27 18:02:07 +010022026}
22027
Guido van Rossum3941d972020-05-01 09:42:03 -070022028// _loop0_106: ('if' disjunction)
Guido van Rossumc001c092020-04-30 12:12:19 -070022029static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022030_loop0_106_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022031{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022032 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022033 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022034 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022035 return NULL;
22036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022037 void *_res = NULL;
22038 int _mark = p->mark;
22039 int _start_mark = p->mark;
22040 void **_children = PyMem_Malloc(sizeof(void *));
22041 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022042 p->error_indicator = 1;
22043 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022044 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022045 return NULL;
22046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022047 ssize_t _children_capacity = 1;
22048 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022049 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022050 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022051 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022052 return NULL;
22053 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022054 D(fprintf(stderr, "%*c> _loop0_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022055 void *_tmp_146_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022056 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022057 (_tmp_146_var = _tmp_146_rule(p)) // 'if' disjunction
Guido van Rossumc001c092020-04-30 12:12:19 -070022058 )
22059 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022060 _res = _tmp_146_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022061 if (_n == _children_capacity) {
22062 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022063 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22064 if (!_new_children) {
22065 p->error_indicator = 1;
22066 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022067 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022068 return NULL;
22069 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022070 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022072 _children[_n++] = _res;
22073 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022075 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022076 D(fprintf(stderr, "%*c%s _loop0_106[%d-%d]: %s failed!\n", p->level, ' ',
22077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022079 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22080 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022081 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022082 p->error_indicator = 1;
22083 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022084 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022085 return NULL;
22086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022087 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22088 PyMem_Free(_children);
22089 _PyPegen_insert_memo(p, _start_mark, _loop0_106_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022090 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022091 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022092}
22093
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022094// _loop0_107: ('if' disjunction)
22095static asdl_seq *
22096_loop0_107_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022097{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022098 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022100 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022101 return NULL;
22102 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022103 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022104 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022105 int _start_mark = p->mark;
22106 void **_children = PyMem_Malloc(sizeof(void *));
22107 if (!_children) {
22108 p->error_indicator = 1;
22109 PyErr_NoMemory();
22110 D(p->level--);
22111 return NULL;
22112 }
22113 ssize_t _children_capacity = 1;
22114 ssize_t _n = 0;
22115 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022116 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022117 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022118 return NULL;
22119 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022120 D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022121 void *_tmp_147_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022122 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022123 (_tmp_147_var = _tmp_147_rule(p)) // 'if' disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022124 )
22125 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022126 _res = _tmp_147_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022127 if (_n == _children_capacity) {
22128 _children_capacity *= 2;
22129 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22130 if (!_new_children) {
22131 p->error_indicator = 1;
22132 PyErr_NoMemory();
22133 D(p->level--);
22134 return NULL;
22135 }
22136 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022137 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022138 _children[_n++] = _res;
22139 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022141 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022142 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
22143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022144 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022145 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22146 if (!_seq) {
22147 PyMem_Free(_children);
22148 p->error_indicator = 1;
22149 PyErr_NoMemory();
22150 D(p->level--);
22151 return NULL;
22152 }
22153 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22154 PyMem_Free(_children);
22155 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022156 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022157 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022158}
22159
Guido van Rossum3941d972020-05-01 09:42:03 -070022160// _tmp_108: ',' args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022161static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070022162_tmp_108_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022163{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022164 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022165 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022166 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022167 return NULL;
22168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022169 void * _res = NULL;
22170 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022171 { // ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022172 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022173 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022174 return NULL;
22175 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022176 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022177 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022178 expr_ty c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022179 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022180 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022181 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022182 (c = args_rule(p)) // args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022183 )
22184 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022185 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022186 _res = c;
22187 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022188 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022189 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022190 return NULL;
22191 }
22192 goto done;
22193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022194 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022195 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
22196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' args"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022198 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022199 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022200 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022201 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022202}
22203
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022204// _tmp_109: ',' args
22205static void *
22206_tmp_109_rule(Parser *p)
22207{
22208 D(p->level++);
22209 if (p->error_indicator) {
22210 D(p->level--);
22211 return NULL;
22212 }
22213 void * _res = NULL;
22214 int _mark = p->mark;
22215 { // ',' args
22216 if (p->error_indicator) {
22217 D(p->level--);
22218 return NULL;
22219 }
22220 D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' args"));
22221 Token * _literal;
22222 expr_ty c;
22223 if (
22224 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22225 &&
22226 (c = args_rule(p)) // args
22227 )
22228 {
22229 D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' args"));
22230 _res = c;
22231 if (_res == NULL && PyErr_Occurred()) {
22232 p->error_indicator = 1;
22233 D(p->level--);
22234 return NULL;
22235 }
22236 goto done;
22237 }
22238 p->mark = _mark;
22239 D(fprintf(stderr, "%*c%s _tmp_109[%d-%d]: %s failed!\n", p->level, ' ',
22240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' args"));
22241 }
22242 _res = NULL;
22243 done:
22244 D(p->level--);
22245 return _res;
22246}
22247
22248// _loop0_111: ',' kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022249static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022250_loop0_111_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022251{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022252 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022253 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022254 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022255 return NULL;
22256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022257 void *_res = NULL;
22258 int _mark = p->mark;
22259 int _start_mark = p->mark;
22260 void **_children = PyMem_Malloc(sizeof(void *));
22261 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022262 p->error_indicator = 1;
22263 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022264 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022265 return NULL;
22266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022267 ssize_t _children_capacity = 1;
22268 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022269 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022270 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022271 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022272 return NULL;
22273 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022274 D(fprintf(stderr, "%*c> _loop0_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022275 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022276 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022277 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022278 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022279 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022280 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022281 )
22282 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022283 _res = elem;
22284 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022285 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022286 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022287 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022288 return NULL;
22289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022290 if (_n == _children_capacity) {
22291 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022292 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22293 if (!_new_children) {
22294 p->error_indicator = 1;
22295 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022296 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022297 return NULL;
22298 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022299 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022301 _children[_n++] = _res;
22302 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022304 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022305 D(fprintf(stderr, "%*c%s _loop0_111[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022308 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22309 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022310 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022311 p->error_indicator = 1;
22312 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022313 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022314 return NULL;
22315 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022316 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22317 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022318 _PyPegen_insert_memo(p, _start_mark, _loop0_111_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022319 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022320 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022321}
22322
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022323// _gather_110: kwarg_or_starred _loop0_111
Guido van Rossum3941d972020-05-01 09:42:03 -070022324static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022325_gather_110_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022326{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022327 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022329 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022330 return NULL;
22331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022332 asdl_seq * _res = NULL;
22333 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022334 { // kwarg_or_starred _loop0_111
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022335 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022336 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022337 return NULL;
22338 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022339 D(fprintf(stderr, "%*c> _gather_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_111"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022340 KeywordOrStarred* elem;
22341 asdl_seq * seq;
22342 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022343 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022344 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022345 (seq = _loop0_111_rule(p)) // _loop0_111
Guido van Rossum3941d972020-05-01 09:42:03 -070022346 )
22347 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022348 D(fprintf(stderr, "%*c+ _gather_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_111"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022349 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022350 goto done;
22351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022352 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022353 D(fprintf(stderr, "%*c%s _gather_110[%d-%d]: %s failed!\n", p->level, ' ',
22354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_111"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022356 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022357 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022358 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022359 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022360}
22361
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022362// _loop0_113: ',' kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022363static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022364_loop0_113_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022365{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022366 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022367 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022368 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022369 return NULL;
22370 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022371 void *_res = NULL;
22372 int _mark = p->mark;
22373 int _start_mark = p->mark;
22374 void **_children = PyMem_Malloc(sizeof(void *));
22375 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022376 p->error_indicator = 1;
22377 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022378 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022379 return NULL;
22380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022381 ssize_t _children_capacity = 1;
22382 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022383 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022384 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022385 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022386 return NULL;
22387 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022388 D(fprintf(stderr, "%*c> _loop0_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022389 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022390 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022391 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022392 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022393 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022394 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022395 )
22396 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022397 _res = elem;
22398 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022399 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022400 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022401 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022402 return NULL;
22403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022404 if (_n == _children_capacity) {
22405 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022406 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22407 if (!_new_children) {
22408 p->error_indicator = 1;
22409 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022410 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022411 return NULL;
22412 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022413 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022415 _children[_n++] = _res;
22416 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022418 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022419 D(fprintf(stderr, "%*c%s _loop0_113[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022421 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022422 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22423 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022424 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022425 p->error_indicator = 1;
22426 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022427 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022428 return NULL;
22429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022430 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22431 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022432 _PyPegen_insert_memo(p, _start_mark, _loop0_113_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022433 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022434 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022435}
22436
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022437// _gather_112: kwarg_or_double_starred _loop0_113
Guido van Rossum3941d972020-05-01 09:42:03 -070022438static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022439_gather_112_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022440{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022441 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022443 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022444 return NULL;
22445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022446 asdl_seq * _res = NULL;
22447 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022448 { // kwarg_or_double_starred _loop0_113
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022449 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022450 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022451 return NULL;
22452 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022453 D(fprintf(stderr, "%*c> _gather_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_113"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022454 KeywordOrStarred* elem;
22455 asdl_seq * seq;
22456 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022457 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022458 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022459 (seq = _loop0_113_rule(p)) // _loop0_113
Guido van Rossum3941d972020-05-01 09:42:03 -070022460 )
22461 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022462 D(fprintf(stderr, "%*c+ _gather_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_113"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022463 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022464 goto done;
22465 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022466 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022467 D(fprintf(stderr, "%*c%s _gather_112[%d-%d]: %s failed!\n", p->level, ' ',
22468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_113"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022470 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022471 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022472 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022473 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022474}
22475
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022476// _loop0_115: ',' kwarg_or_starred
Pablo Galindo2b74c832020-04-27 18:02:07 +010022477static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022478_loop0_115_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022479{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022480 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022481 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022482 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022483 return NULL;
22484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022485 void *_res = NULL;
22486 int _mark = p->mark;
22487 int _start_mark = p->mark;
22488 void **_children = PyMem_Malloc(sizeof(void *));
22489 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022490 p->error_indicator = 1;
22491 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022492 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022493 return NULL;
22494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022495 ssize_t _children_capacity = 1;
22496 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070022497 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022498 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022499 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022500 return NULL;
22501 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022502 D(fprintf(stderr, "%*c> _loop0_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022503 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022504 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022505 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022506 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022507 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022508 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022509 )
22510 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022511 _res = elem;
22512 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022513 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022514 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022515 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022516 return NULL;
22517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022518 if (_n == _children_capacity) {
22519 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022520 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22521 if (!_new_children) {
22522 p->error_indicator = 1;
22523 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022524 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022525 return NULL;
22526 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022527 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022529 _children[_n++] = _res;
22530 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022531 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022532 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022533 D(fprintf(stderr, "%*c%s _loop0_115[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022535 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022536 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22537 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022538 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022539 p->error_indicator = 1;
22540 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022541 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022542 return NULL;
22543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022544 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22545 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022546 _PyPegen_insert_memo(p, _start_mark, _loop0_115_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022547 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022548 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022549}
22550
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022551// _gather_114: kwarg_or_starred _loop0_115
Guido van Rossumc001c092020-04-30 12:12:19 -070022552static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022553_gather_114_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022554{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022555 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022556 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022557 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022558 return NULL;
22559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022560 asdl_seq * _res = NULL;
22561 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022562 { // kwarg_or_starred _loop0_115
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022563 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022564 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022565 return NULL;
22566 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022567 D(fprintf(stderr, "%*c> _gather_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_115"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022568 KeywordOrStarred* elem;
22569 asdl_seq * seq;
22570 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022571 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022572 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022573 (seq = _loop0_115_rule(p)) // _loop0_115
Guido van Rossumc001c092020-04-30 12:12:19 -070022574 )
22575 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022576 D(fprintf(stderr, "%*c+ _gather_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_115"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022577 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022578 goto done;
22579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022580 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022581 D(fprintf(stderr, "%*c%s _gather_114[%d-%d]: %s failed!\n", p->level, ' ',
22582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_115"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022584 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022585 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022586 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022587 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022588}
22589
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022590// _loop0_117: ',' kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022591static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022592_loop0_117_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022593{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022594 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022595 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022596 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022597 return NULL;
22598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022599 void *_res = NULL;
22600 int _mark = p->mark;
22601 int _start_mark = p->mark;
22602 void **_children = PyMem_Malloc(sizeof(void *));
22603 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022604 p->error_indicator = 1;
22605 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022606 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022607 return NULL;
22608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022609 ssize_t _children_capacity = 1;
22610 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022611 { // ',' kwarg_or_double_starred
22612 if (p->error_indicator) {
22613 D(p->level--);
22614 return NULL;
22615 }
22616 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22617 Token * _literal;
22618 KeywordOrStarred* elem;
22619 while (
22620 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22621 &&
22622 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22623 )
22624 {
22625 _res = elem;
22626 if (_res == NULL && PyErr_Occurred()) {
22627 p->error_indicator = 1;
22628 PyMem_Free(_children);
22629 D(p->level--);
22630 return NULL;
22631 }
22632 if (_n == _children_capacity) {
22633 _children_capacity *= 2;
22634 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22635 if (!_new_children) {
22636 p->error_indicator = 1;
22637 PyErr_NoMemory();
22638 D(p->level--);
22639 return NULL;
22640 }
22641 _children = _new_children;
22642 }
22643 _children[_n++] = _res;
22644 _mark = p->mark;
22645 }
22646 p->mark = _mark;
22647 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
22648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
22649 }
22650 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22651 if (!_seq) {
22652 PyMem_Free(_children);
22653 p->error_indicator = 1;
22654 PyErr_NoMemory();
22655 D(p->level--);
22656 return NULL;
22657 }
22658 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22659 PyMem_Free(_children);
22660 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
22661 D(p->level--);
22662 return _seq;
22663}
22664
22665// _gather_116: kwarg_or_double_starred _loop0_117
22666static asdl_seq *
22667_gather_116_rule(Parser *p)
22668{
22669 D(p->level++);
22670 if (p->error_indicator) {
22671 D(p->level--);
22672 return NULL;
22673 }
22674 asdl_seq * _res = NULL;
22675 int _mark = p->mark;
22676 { // kwarg_or_double_starred _loop0_117
22677 if (p->error_indicator) {
22678 D(p->level--);
22679 return NULL;
22680 }
22681 D(fprintf(stderr, "%*c> _gather_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_117"));
22682 KeywordOrStarred* elem;
22683 asdl_seq * seq;
22684 if (
22685 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22686 &&
22687 (seq = _loop0_117_rule(p)) // _loop0_117
22688 )
22689 {
22690 D(fprintf(stderr, "%*c+ _gather_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_117"));
22691 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22692 goto done;
22693 }
22694 p->mark = _mark;
22695 D(fprintf(stderr, "%*c%s _gather_116[%d-%d]: %s failed!\n", p->level, ' ',
22696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_117"));
22697 }
22698 _res = NULL;
22699 done:
22700 D(p->level--);
22701 return _res;
22702}
22703
22704// _loop0_118: (',' star_target)
22705static asdl_seq *
22706_loop0_118_rule(Parser *p)
22707{
22708 D(p->level++);
22709 if (p->error_indicator) {
22710 D(p->level--);
22711 return NULL;
22712 }
22713 void *_res = NULL;
22714 int _mark = p->mark;
22715 int _start_mark = p->mark;
22716 void **_children = PyMem_Malloc(sizeof(void *));
22717 if (!_children) {
22718 p->error_indicator = 1;
22719 PyErr_NoMemory();
22720 D(p->level--);
22721 return NULL;
22722 }
22723 ssize_t _children_capacity = 1;
22724 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022725 { // (',' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022726 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022727 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022728 return NULL;
22729 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022730 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022731 void *_tmp_148_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022732 while (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022733 (_tmp_148_var = _tmp_148_rule(p)) // ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022734 )
22735 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030022736 _res = _tmp_148_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022737 if (_n == _children_capacity) {
22738 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022739 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22740 if (!_new_children) {
22741 p->error_indicator = 1;
22742 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022743 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022744 return NULL;
22745 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022746 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022748 _children[_n++] = _res;
22749 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022751 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022752 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022755 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22756 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022757 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022758 p->error_indicator = 1;
22759 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022760 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022761 return NULL;
22762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022763 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22764 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022765 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022766 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022767 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022768}
22769
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022770// _loop0_120: ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022771static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022772_loop0_120_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022773{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022774 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022776 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022777 return NULL;
22778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022779 void *_res = NULL;
22780 int _mark = p->mark;
22781 int _start_mark = p->mark;
22782 void **_children = PyMem_Malloc(sizeof(void *));
22783 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022784 p->error_indicator = 1;
22785 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022786 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022787 return NULL;
22788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022789 ssize_t _children_capacity = 1;
22790 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022791 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022792 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022793 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022794 return NULL;
22795 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022796 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022797 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022798 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022799 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022800 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022801 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022802 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022803 )
22804 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022805 _res = elem;
22806 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022807 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022808 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022809 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022810 return NULL;
22811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022812 if (_n == _children_capacity) {
22813 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022814 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22815 if (!_new_children) {
22816 p->error_indicator = 1;
22817 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022819 return NULL;
22820 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022821 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022823 _children[_n++] = _res;
22824 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022826 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022827 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022830 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22831 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022832 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022833 p->error_indicator = 1;
22834 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022836 return NULL;
22837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022838 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22839 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022840 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022841 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022842 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022843}
22844
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022845// _gather_119: star_target _loop0_120
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022846static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022847_gather_119_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022848{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022849 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022850 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022851 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022852 return NULL;
22853 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022854 asdl_seq * _res = NULL;
22855 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022856 { // star_target _loop0_120
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022857 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022858 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022859 return NULL;
22860 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022861 D(fprintf(stderr, "%*c> _gather_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_120"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022862 expr_ty elem;
22863 asdl_seq * seq;
22864 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022865 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022866 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022867 (seq = _loop0_120_rule(p)) // _loop0_120
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022868 )
22869 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022870 D(fprintf(stderr, "%*c+ _gather_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_120"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022871 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022872 goto done;
22873 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022874 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022875 D(fprintf(stderr, "%*c%s _gather_119[%d-%d]: %s failed!\n", p->level, ' ',
22876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_120"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022878 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022879 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022880 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022881 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022882}
22883
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022884// _tmp_121: !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022885static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022886_tmp_121_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022887{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022888 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022889 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022890 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022891 return NULL;
22892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022893 void * _res = NULL;
22894 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022895 { // !'*' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022896 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022897 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022898 return NULL;
22899 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022900 D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022901 expr_ty star_target_var;
22902 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022903 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022904 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022905 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022906 )
22907 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022908 D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022909 _res = star_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022910 goto done;
22911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022912 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022913 D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022916 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022917 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022918 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022919 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022920}
22921
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022922// _loop0_123: ',' del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022923static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022924_loop0_123_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022925{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022926 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022927 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022928 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022929 return NULL;
22930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022931 void *_res = NULL;
22932 int _mark = p->mark;
22933 int _start_mark = p->mark;
22934 void **_children = PyMem_Malloc(sizeof(void *));
22935 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022936 p->error_indicator = 1;
22937 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022938 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022939 return NULL;
22940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022941 ssize_t _children_capacity = 1;
22942 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022943 { // ',' del_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022944 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022945 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022946 return NULL;
22947 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022948 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022949 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022950 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022951 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022952 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022953 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022954 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022955 )
22956 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022957 _res = elem;
22958 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022959 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022960 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022962 return NULL;
22963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022964 if (_n == _children_capacity) {
22965 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022966 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22967 if (!_new_children) {
22968 p->error_indicator = 1;
22969 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022970 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022971 return NULL;
22972 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022973 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022974 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022975 _children[_n++] = _res;
22976 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022978 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022979 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022982 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22983 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022984 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022985 p->error_indicator = 1;
22986 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022987 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022988 return NULL;
22989 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022990 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22991 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022992 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022993 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022994 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022995}
22996
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022997// _gather_122: del_target _loop0_123
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022998static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022999_gather_122_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023000{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023001 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023002 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023003 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023004 return NULL;
23005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023006 asdl_seq * _res = NULL;
23007 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023008 { // del_target _loop0_123
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023009 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023010 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023011 return NULL;
23012 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023013 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_123"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023014 expr_ty elem;
23015 asdl_seq * seq;
23016 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023017 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023018 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023019 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023020 )
23021 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023022 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_123"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023023 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023024 goto done;
23025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023026 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023027 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
23028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023030 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023031 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023032 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023033 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023034}
23035
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023036// _loop0_125: ',' target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023037static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023038_loop0_125_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023039{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023040 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023041 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023042 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023043 return NULL;
23044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023045 void *_res = NULL;
23046 int _mark = p->mark;
23047 int _start_mark = p->mark;
23048 void **_children = PyMem_Malloc(sizeof(void *));
23049 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023050 p->error_indicator = 1;
23051 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023052 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023053 return NULL;
23054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023055 ssize_t _children_capacity = 1;
23056 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023057 { // ',' target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023058 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023059 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023060 return NULL;
23061 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023062 D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023063 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023064 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023065 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023066 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023067 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023068 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023069 )
23070 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023071 _res = elem;
23072 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023073 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023074 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023075 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023076 return NULL;
23077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023078 if (_n == _children_capacity) {
23079 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023080 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23081 if (!_new_children) {
23082 p->error_indicator = 1;
23083 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023084 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023085 return NULL;
23086 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023087 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023089 _children[_n++] = _res;
23090 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023092 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023093 D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023096 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23097 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023098 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023099 p->error_indicator = 1;
23100 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023101 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023102 return NULL;
23103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023104 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23105 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023106 _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023107 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023108 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023109}
23110
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023111// _gather_124: target _loop0_125
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023112static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023113_gather_124_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023114{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023115 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023116 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023117 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023118 return NULL;
23119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023120 asdl_seq * _res = NULL;
23121 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023122 { // target _loop0_125
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023124 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023125 return NULL;
23126 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023127 D(fprintf(stderr, "%*c> _gather_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_125"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023128 expr_ty elem;
23129 asdl_seq * seq;
23130 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023131 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023132 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023133 (seq = _loop0_125_rule(p)) // _loop0_125
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023134 )
23135 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023136 D(fprintf(stderr, "%*c+ _gather_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_125"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023137 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023138 goto done;
23139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023140 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023141 D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
23142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_125"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023144 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023145 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023146 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023147 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023148}
23149
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023150// _tmp_126: args | expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023151static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023152_tmp_126_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023153{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023154 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023156 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023157 return NULL;
23158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023159 void * _res = NULL;
23160 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023161 { // args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023162 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023163 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023164 return NULL;
23165 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023166 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023167 expr_ty args_var;
23168 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023169 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023170 )
23171 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023172 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023173 _res = args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023174 goto done;
23175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023176 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023177 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023179 }
23180 { // expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023181 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023182 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023183 return NULL;
23184 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023185 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023186 expr_ty expression_var;
23187 asdl_seq* for_if_clauses_var;
23188 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023189 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023190 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023191 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023192 )
23193 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023194 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023195 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023196 goto done;
23197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023198 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023199 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023202 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023203 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023204 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023205 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023206}
23207
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023208// _loop0_127: star_named_expressions
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023209static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023210_loop0_127_rule(Parser *p)
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023211{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023212 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023213 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023214 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023215 return NULL;
23216 }
23217 void *_res = NULL;
23218 int _mark = p->mark;
23219 int _start_mark = p->mark;
23220 void **_children = PyMem_Malloc(sizeof(void *));
23221 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023222 p->error_indicator = 1;
23223 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023224 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023225 return NULL;
23226 }
23227 ssize_t _children_capacity = 1;
23228 ssize_t _n = 0;
23229 { // star_named_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023230 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023231 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023232 return NULL;
23233 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023234 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023235 asdl_seq* star_named_expressions_var;
23236 while (
23237 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23238 )
23239 {
23240 _res = star_named_expressions_var;
23241 if (_n == _children_capacity) {
23242 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023243 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23244 if (!_new_children) {
23245 p->error_indicator = 1;
23246 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023247 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023248 return NULL;
23249 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023250 _children = _new_children;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023251 }
23252 _children[_n++] = _res;
23253 _mark = p->mark;
23254 }
23255 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023256 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023258 }
23259 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23260 if (!_seq) {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023261 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023262 p->error_indicator = 1;
23263 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023264 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023265 return NULL;
23266 }
23267 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23268 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030023269 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023270 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023271 return _seq;
23272}
23273
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023274// _loop0_128: (star_targets '=')
23275static asdl_seq *
23276_loop0_128_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023277{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023278 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023281 return NULL;
23282 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023283 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023284 int _mark = p->mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023285 int _start_mark = p->mark;
23286 void **_children = PyMem_Malloc(sizeof(void *));
23287 if (!_children) {
23288 p->error_indicator = 1;
23289 PyErr_NoMemory();
23290 D(p->level--);
23291 return NULL;
23292 }
23293 ssize_t _children_capacity = 1;
23294 ssize_t _n = 0;
23295 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023296 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023297 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023298 return NULL;
23299 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023300 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23301 void *_tmp_149_var;
23302 while (
23303 (_tmp_149_var = _tmp_149_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023304 )
23305 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023306 _res = _tmp_149_var;
23307 if (_n == _children_capacity) {
23308 _children_capacity *= 2;
23309 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23310 if (!_new_children) {
23311 p->error_indicator = 1;
23312 PyErr_NoMemory();
23313 D(p->level--);
23314 return NULL;
23315 }
23316 _children = _new_children;
23317 }
23318 _children[_n++] = _res;
23319 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023321 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023322 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
23323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023324 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023325 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23326 if (!_seq) {
23327 PyMem_Free(_children);
23328 p->error_indicator = 1;
23329 PyErr_NoMemory();
23330 D(p->level--);
23331 return NULL;
23332 }
23333 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23334 PyMem_Free(_children);
23335 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023336 D(p->level--);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023337 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023338}
23339
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023340// _loop0_129: (star_targets '=')
23341static asdl_seq *
23342_loop0_129_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023343{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023344 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023345 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023346 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023347 return NULL;
23348 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023349 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023350 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023351 int _start_mark = p->mark;
23352 void **_children = PyMem_Malloc(sizeof(void *));
23353 if (!_children) {
23354 p->error_indicator = 1;
23355 PyErr_NoMemory();
23356 D(p->level--);
23357 return NULL;
23358 }
23359 ssize_t _children_capacity = 1;
23360 ssize_t _n = 0;
23361 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023362 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023363 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023364 return NULL;
23365 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023366 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023367 void *_tmp_150_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023368 while (
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023369 (_tmp_150_var = _tmp_150_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023370 )
23371 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023372 _res = _tmp_150_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023373 if (_n == _children_capacity) {
23374 _children_capacity *= 2;
23375 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23376 if (!_new_children) {
23377 p->error_indicator = 1;
23378 PyErr_NoMemory();
23379 D(p->level--);
23380 return NULL;
23381 }
23382 _children = _new_children;
23383 }
23384 _children[_n++] = _res;
23385 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023387 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023388 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023390 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023391 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23392 if (!_seq) {
23393 PyMem_Free(_children);
23394 p->error_indicator = 1;
23395 PyErr_NoMemory();
23396 D(p->level--);
23397 return NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023398 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023399 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23400 PyMem_Free(_children);
23401 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023402 D(p->level--);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023403 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023404}
23405
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023406// _tmp_130: yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023407static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023408_tmp_130_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023409{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023410 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023411 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023412 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023413 return NULL;
23414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023415 void * _res = NULL;
23416 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023417 { // yield_expr
23418 if (p->error_indicator) {
23419 D(p->level--);
23420 return NULL;
23421 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023422 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023423 expr_ty yield_expr_var;
23424 if (
23425 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23426 )
23427 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023428 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023429 _res = yield_expr_var;
23430 goto done;
23431 }
23432 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023433 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23435 }
23436 { // star_expressions
23437 if (p->error_indicator) {
23438 D(p->level--);
23439 return NULL;
23440 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023441 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023442 expr_ty star_expressions_var;
23443 if (
23444 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23445 )
23446 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023447 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023448 _res = star_expressions_var;
23449 goto done;
23450 }
23451 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023452 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23454 }
23455 _res = NULL;
23456 done:
23457 D(p->level--);
23458 return _res;
23459}
23460
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023461// _tmp_131: '[' | '(' | '{'
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023462static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023463_tmp_131_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023464{
23465 D(p->level++);
23466 if (p->error_indicator) {
23467 D(p->level--);
23468 return NULL;
23469 }
23470 void * _res = NULL;
23471 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023472 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023473 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023474 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023475 return NULL;
23476 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023477 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023478 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023479 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023480 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023481 )
23482 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023483 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023484 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023485 goto done;
23486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023487 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023488 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023490 }
23491 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023492 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023493 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023494 return NULL;
23495 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023496 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023497 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023498 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023499 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023500 )
23501 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023502 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023503 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023504 goto done;
23505 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023506 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023507 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023509 }
23510 { // '{'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023511 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023512 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023513 return NULL;
23514 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023515 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023516 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023517 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023518 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023519 )
23520 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023521 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023522 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023523 goto done;
23524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023525 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023526 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023529 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023530 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023531 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023532 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023533}
23534
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023535// _loop0_132: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023536static asdl_seq *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023537_loop0_132_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023538{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023539 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023540 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023541 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023542 return NULL;
23543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023544 void *_res = NULL;
23545 int _mark = p->mark;
23546 int _start_mark = p->mark;
23547 void **_children = PyMem_Malloc(sizeof(void *));
23548 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023549 p->error_indicator = 1;
23550 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023551 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023552 return NULL;
23553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023554 ssize_t _children_capacity = 1;
23555 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023556 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023558 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023559 return NULL;
23560 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023561 D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023562 arg_ty param_no_default_var;
23563 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023564 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023565 )
23566 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023567 _res = param_no_default_var;
23568 if (_n == _children_capacity) {
23569 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023570 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23571 if (!_new_children) {
23572 p->error_indicator = 1;
23573 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023574 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023575 return NULL;
23576 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023577 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023579 _children[_n++] = _res;
23580 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023582 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023583 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023586 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23587 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023588 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023589 p->error_indicator = 1;
23590 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023591 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023592 return NULL;
23593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023594 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23595 PyMem_Free(_children);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023596 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023597 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023598 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023599}
23600
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023601// _tmp_133: slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023602static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023603_tmp_133_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023604{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023605 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023606 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023607 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023608 return NULL;
23609 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023610 void * _res = NULL;
23611 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023612 { // slash_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023613 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023614 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023615 return NULL;
23616 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023617 D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023618 SlashWithDefault* slash_with_default_var;
23619 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023620 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023621 )
23622 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023623 D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023624 _res = slash_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023625 goto done;
23626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023627 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023628 D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023630 }
Guido van Rossumc001c092020-04-30 12:12:19 -070023631 { // param_with_default+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023632 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023633 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023634 return NULL;
23635 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023636 D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23637 asdl_seq * _loop1_151_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023638 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023639 (_loop1_151_var = _loop1_151_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023640 )
23641 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023642 D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23643 _res = _loop1_151_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023644 goto done;
23645 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023646 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023647 D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023649 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023650 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023651 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023652 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023653 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023654}
23655
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023656// _loop0_134: lambda_param_no_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023657static asdl_seq *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023658_loop0_134_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023659{
23660 D(p->level++);
23661 if (p->error_indicator) {
23662 D(p->level--);
23663 return NULL;
23664 }
23665 void *_res = NULL;
23666 int _mark = p->mark;
23667 int _start_mark = p->mark;
23668 void **_children = PyMem_Malloc(sizeof(void *));
23669 if (!_children) {
23670 p->error_indicator = 1;
23671 PyErr_NoMemory();
23672 D(p->level--);
23673 return NULL;
23674 }
23675 ssize_t _children_capacity = 1;
23676 ssize_t _n = 0;
23677 { // lambda_param_no_default
23678 if (p->error_indicator) {
23679 D(p->level--);
23680 return NULL;
23681 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023682 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023683 arg_ty lambda_param_no_default_var;
23684 while (
23685 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23686 )
23687 {
23688 _res = lambda_param_no_default_var;
23689 if (_n == _children_capacity) {
23690 _children_capacity *= 2;
23691 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23692 if (!_new_children) {
23693 p->error_indicator = 1;
23694 PyErr_NoMemory();
23695 D(p->level--);
23696 return NULL;
23697 }
23698 _children = _new_children;
23699 }
23700 _children[_n++] = _res;
23701 _mark = p->mark;
23702 }
23703 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023704 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
23706 }
23707 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23708 if (!_seq) {
23709 PyMem_Free(_children);
23710 p->error_indicator = 1;
23711 PyErr_NoMemory();
23712 D(p->level--);
23713 return NULL;
23714 }
23715 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23716 PyMem_Free(_children);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023717 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023718 D(p->level--);
23719 return _seq;
23720}
23721
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023722// _tmp_135: lambda_slash_with_default | lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023723static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023724_tmp_135_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023725{
23726 D(p->level++);
23727 if (p->error_indicator) {
23728 D(p->level--);
23729 return NULL;
23730 }
23731 void * _res = NULL;
23732 int _mark = p->mark;
23733 { // lambda_slash_with_default
23734 if (p->error_indicator) {
23735 D(p->level--);
23736 return NULL;
23737 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023738 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023739 SlashWithDefault* lambda_slash_with_default_var;
23740 if (
23741 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
23742 )
23743 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023744 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023745 _res = lambda_slash_with_default_var;
23746 goto done;
23747 }
23748 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023749 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
23751 }
23752 { // lambda_param_with_default+
23753 if (p->error_indicator) {
23754 D(p->level--);
23755 return NULL;
23756 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023757 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23758 asdl_seq * _loop1_152_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023759 if (
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023760 (_loop1_152_var = _loop1_152_rule(p)) // lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023761 )
23762 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023763 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23764 _res = _loop1_152_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023765 goto done;
23766 }
23767 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023768 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
23770 }
23771 _res = NULL;
23772 done:
23773 D(p->level--);
23774 return _res;
23775}
23776
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023777// _tmp_136: ')' | ',' (')' | '**')
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023778static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023779_tmp_136_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023780{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023781 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023782 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023783 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023784 return NULL;
23785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023786 void * _res = NULL;
23787 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023788 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023789 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023790 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023791 return NULL;
23792 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023793 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023794 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023795 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023796 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023797 )
23798 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023799 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023800 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023801 goto done;
23802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023803 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023804 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023806 }
23807 { // ',' (')' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023808 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023809 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023810 return NULL;
23811 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023812 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023813 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023814 void *_tmp_153_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023815 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023816 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023817 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023818 (_tmp_153_var = _tmp_153_rule(p)) // ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023819 )
23820 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023821 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
23822 _res = _PyPegen_dummy_name(p, _literal, _tmp_153_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023823 goto done;
23824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023825 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023826 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023829 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023830 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023831 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023832 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023833}
23834
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023835// _tmp_137: ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023836static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023837_tmp_137_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023838{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023839 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023840 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023841 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023842 return NULL;
23843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023844 void * _res = NULL;
23845 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023846 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023847 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023848 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023849 return NULL;
23850 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023851 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023852 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023853 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023854 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023855 )
23856 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023857 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023858 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023859 goto done;
23860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023861 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023862 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023864 }
23865 { // ',' (':' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023866 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023867 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023868 return NULL;
23869 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023870 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023871 Token * _literal;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023872 void *_tmp_154_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023873 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023874 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023875 &&
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023876 (_tmp_154_var = _tmp_154_rule(p)) // ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023877 )
23878 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023879 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
23880 _res = _PyPegen_dummy_name(p, _literal, _tmp_154_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023881 goto done;
23882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023883 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023884 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023887 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023888 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023889 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023890 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023891}
23892
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023893// _tmp_138: star_targets '='
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023894static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023895_tmp_138_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023896{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023897 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023898 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023899 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023900 return NULL;
23901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023902 void * _res = NULL;
23903 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023904 { // star_targets '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023905 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023906 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023907 return NULL;
23908 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023909 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023910 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023911 expr_ty z;
23912 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023913 (z = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023914 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023915 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023916 )
23917 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023918 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023919 _res = z;
23920 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023921 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023922 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023923 return NULL;
23924 }
23925 goto done;
23926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023927 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023928 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023931 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023932 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023933 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023934 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023935}
23936
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023937// _tmp_139: '.' | '...'
23938static void *
23939_tmp_139_rule(Parser *p)
23940{
23941 D(p->level++);
23942 if (p->error_indicator) {
23943 D(p->level--);
23944 return NULL;
23945 }
23946 void * _res = NULL;
23947 int _mark = p->mark;
23948 { // '.'
23949 if (p->error_indicator) {
23950 D(p->level--);
23951 return NULL;
23952 }
23953 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23954 Token * _literal;
23955 if (
23956 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23957 )
23958 {
23959 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23960 _res = _literal;
23961 goto done;
23962 }
23963 p->mark = _mark;
23964 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
23965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23966 }
23967 { // '...'
23968 if (p->error_indicator) {
23969 D(p->level--);
23970 return NULL;
23971 }
23972 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
23973 Token * _literal;
23974 if (
23975 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
23976 )
23977 {
23978 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
23979 _res = _literal;
23980 goto done;
23981 }
23982 p->mark = _mark;
23983 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
23984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
23985 }
23986 _res = NULL;
23987 done:
23988 D(p->level--);
23989 return _res;
23990}
23991
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023992// _tmp_140: '.' | '...'
23993static void *
23994_tmp_140_rule(Parser *p)
23995{
23996 D(p->level++);
23997 if (p->error_indicator) {
23998 D(p->level--);
23999 return NULL;
24000 }
24001 void * _res = NULL;
24002 int _mark = p->mark;
24003 { // '.'
24004 if (p->error_indicator) {
24005 D(p->level--);
24006 return NULL;
24007 }
24008 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24009 Token * _literal;
24010 if (
24011 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24012 )
24013 {
24014 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24015 _res = _literal;
24016 goto done;
24017 }
24018 p->mark = _mark;
24019 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24021 }
24022 { // '...'
24023 if (p->error_indicator) {
24024 D(p->level--);
24025 return NULL;
24026 }
24027 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24028 Token * _literal;
24029 if (
24030 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24031 )
24032 {
24033 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24034 _res = _literal;
24035 goto done;
24036 }
24037 p->mark = _mark;
24038 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24040 }
24041 _res = NULL;
24042 done:
24043 D(p->level--);
24044 return _res;
24045}
24046
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024047// _tmp_141: '@' named_expression NEWLINE
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024048static void *
24049_tmp_141_rule(Parser *p)
24050{
24051 D(p->level++);
24052 if (p->error_indicator) {
24053 D(p->level--);
24054 return NULL;
24055 }
24056 void * _res = NULL;
24057 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024058 { // '@' named_expression NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024059 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024060 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024061 return NULL;
24062 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024063 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024064 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024065 expr_ty f;
Pablo Galindob796b3f2020-05-01 12:32:26 +010024066 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024067 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024068 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024069 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024070 (f = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024071 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024072 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024073 )
24074 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024075 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024076 _res = f;
24077 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024078 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024079 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024080 return NULL;
24081 }
24082 goto done;
24083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024084 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024085 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024088 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024089 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024090 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024091 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024092}
24093
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024094// _tmp_142: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024095static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024096_tmp_142_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024097{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024098 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024100 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024101 return NULL;
24102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024103 void * _res = NULL;
24104 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024105 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024106 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024107 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024108 return NULL;
24109 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024110 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024111 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024112 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024113 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024114 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024115 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024116 (c = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024117 )
24118 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024119 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024120 _res = c;
24121 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024122 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024123 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024124 return NULL;
24125 }
24126 goto done;
24127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024128 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024129 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024131 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024132 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024133 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024134 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024135 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024136}
24137
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024138// _tmp_143: ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024139static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024140_tmp_143_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024141{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024142 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024143 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024144 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024145 return NULL;
24146 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024147 void * _res = NULL;
24148 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024149 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024150 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024151 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024152 return NULL;
24153 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024154 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024155 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024156 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024157 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024158 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024159 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024160 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024161 )
24162 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024163 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024164 _res = c;
24165 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024166 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024167 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024168 return NULL;
24169 }
24170 goto done;
24171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024172 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024173 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024176 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024177 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024178 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024179 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024180}
24181
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024182// _tmp_144: 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024183static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024184_tmp_144_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024185{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024186 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024187 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024188 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024189 return NULL;
24190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024191 void * _res = NULL;
24192 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024193 { // 'or' conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024194 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024195 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024196 return NULL;
24197 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024198 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024199 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024200 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024201 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024202 (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024203 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024204 (c = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024205 )
24206 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024207 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024208 _res = c;
24209 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024210 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024211 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024212 return NULL;
24213 }
24214 goto done;
24215 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024216 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024217 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024220 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024221 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024222 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024223 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024224}
24225
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024226// _tmp_145: 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024227static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024228_tmp_145_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024229{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024230 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024231 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024232 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024233 return NULL;
24234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024235 void * _res = NULL;
24236 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024237 { // 'and' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024238 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024239 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024240 return NULL;
24241 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024242 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024243 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024244 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024245 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024246 (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024247 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024248 (c = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024249 )
24250 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024251 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024252 _res = c;
24253 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024254 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024255 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024256 return NULL;
24257 }
24258 goto done;
24259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024260 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024261 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024263 }
24264 _res = NULL;
24265 done:
24266 D(p->level--);
24267 return _res;
24268}
24269
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024270// _tmp_146: 'if' disjunction
24271static void *
24272_tmp_146_rule(Parser *p)
24273{
24274 D(p->level++);
24275 if (p->error_indicator) {
24276 D(p->level--);
24277 return NULL;
24278 }
24279 void * _res = NULL;
24280 int _mark = p->mark;
24281 { // 'if' disjunction
24282 if (p->error_indicator) {
24283 D(p->level--);
24284 return NULL;
24285 }
24286 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24287 Token * _keyword;
24288 expr_ty z;
24289 if (
24290 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24291 &&
24292 (z = disjunction_rule(p)) // disjunction
24293 )
24294 {
24295 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24296 _res = z;
24297 if (_res == NULL && PyErr_Occurred()) {
24298 p->error_indicator = 1;
24299 D(p->level--);
24300 return NULL;
24301 }
24302 goto done;
24303 }
24304 p->mark = _mark;
24305 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
24306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24307 }
24308 _res = NULL;
24309 done:
24310 D(p->level--);
24311 return _res;
24312}
24313
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024314// _tmp_147: 'if' disjunction
24315static void *
24316_tmp_147_rule(Parser *p)
24317{
24318 D(p->level++);
24319 if (p->error_indicator) {
24320 D(p->level--);
24321 return NULL;
24322 }
24323 void * _res = NULL;
24324 int _mark = p->mark;
24325 { // 'if' disjunction
24326 if (p->error_indicator) {
24327 D(p->level--);
24328 return NULL;
24329 }
24330 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24331 Token * _keyword;
24332 expr_ty z;
24333 if (
24334 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24335 &&
24336 (z = disjunction_rule(p)) // disjunction
24337 )
24338 {
24339 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24340 _res = z;
24341 if (_res == NULL && PyErr_Occurred()) {
24342 p->error_indicator = 1;
24343 D(p->level--);
24344 return NULL;
24345 }
24346 goto done;
24347 }
24348 p->mark = _mark;
24349 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
24350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24351 }
24352 _res = NULL;
24353 done:
24354 D(p->level--);
24355 return _res;
24356}
24357
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024358// _tmp_148: ',' star_target
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024359static void *
24360_tmp_148_rule(Parser *p)
24361{
24362 D(p->level++);
24363 if (p->error_indicator) {
24364 D(p->level--);
24365 return NULL;
24366 }
24367 void * _res = NULL;
24368 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024369 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024370 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024371 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024372 return NULL;
24373 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024374 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024375 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024376 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024377 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024378 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024379 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024380 (c = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024381 )
24382 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024383 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024384 _res = c;
24385 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024386 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024387 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024388 return NULL;
24389 }
24390 goto done;
24391 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024392 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024393 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024395 }
24396 _res = NULL;
24397 done:
24398 D(p->level--);
24399 return _res;
24400}
24401
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024402// _tmp_149: star_targets '='
24403static void *
24404_tmp_149_rule(Parser *p)
24405{
24406 D(p->level++);
24407 if (p->error_indicator) {
24408 D(p->level--);
24409 return NULL;
24410 }
24411 void * _res = NULL;
24412 int _mark = p->mark;
24413 { // star_targets '='
24414 if (p->error_indicator) {
24415 D(p->level--);
24416 return NULL;
24417 }
24418 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24419 Token * _literal;
24420 expr_ty star_targets_var;
24421 if (
24422 (star_targets_var = star_targets_rule(p)) // star_targets
24423 &&
24424 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24425 )
24426 {
24427 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24428 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24429 goto done;
24430 }
24431 p->mark = _mark;
24432 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
24433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24434 }
24435 _res = NULL;
24436 done:
24437 D(p->level--);
24438 return _res;
24439}
24440
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024441// _tmp_150: star_targets '='
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024442static void *
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024443_tmp_150_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024444{
24445 D(p->level++);
24446 if (p->error_indicator) {
24447 D(p->level--);
24448 return NULL;
24449 }
24450 void * _res = NULL;
24451 int _mark = p->mark;
24452 { // star_targets '='
24453 if (p->error_indicator) {
24454 D(p->level--);
24455 return NULL;
24456 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024457 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024458 Token * _literal;
24459 expr_ty star_targets_var;
24460 if (
24461 (star_targets_var = star_targets_rule(p)) // star_targets
24462 &&
24463 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24464 )
24465 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024466 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024467 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24468 goto done;
24469 }
24470 p->mark = _mark;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024471 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24473 }
24474 _res = NULL;
24475 done:
24476 D(p->level--);
24477 return _res;
24478}
24479
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024480// _loop1_151: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024481static asdl_seq *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024482_loop1_151_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070024483{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024484 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070024485 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024486 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024487 return NULL;
24488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024489 void *_res = NULL;
24490 int _mark = p->mark;
24491 int _start_mark = p->mark;
24492 void **_children = PyMem_Malloc(sizeof(void *));
24493 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024494 p->error_indicator = 1;
24495 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024496 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024497 return NULL;
24498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024499 ssize_t _children_capacity = 1;
24500 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070024501 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024502 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024503 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024504 return NULL;
24505 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024506 D(fprintf(stderr, "%*c> _loop1_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024507 NameDefaultPair* param_with_default_var;
24508 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010024509 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070024510 )
24511 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024512 _res = param_with_default_var;
24513 if (_n == _children_capacity) {
24514 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024515 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24516 if (!_new_children) {
24517 p->error_indicator = 1;
24518 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024519 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024520 return NULL;
24521 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024522 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070024523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024524 _children[_n++] = _res;
24525 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070024526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024527 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024528 D(fprintf(stderr, "%*c%s _loop1_151[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024531 if (_n == 0 || p->error_indicator) {
24532 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024533 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024534 return NULL;
24535 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024536 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24537 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024538 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024539 p->error_indicator = 1;
24540 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024541 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024542 return NULL;
24543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024544 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24545 PyMem_Free(_children);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024546 _PyPegen_insert_memo(p, _start_mark, _loop1_151_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024547 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024548 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070024549}
24550
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024551// _loop1_152: lambda_param_with_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024552static asdl_seq *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024553_loop1_152_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024554{
24555 D(p->level++);
24556 if (p->error_indicator) {
24557 D(p->level--);
24558 return NULL;
24559 }
24560 void *_res = NULL;
24561 int _mark = p->mark;
24562 int _start_mark = p->mark;
24563 void **_children = PyMem_Malloc(sizeof(void *));
24564 if (!_children) {
24565 p->error_indicator = 1;
24566 PyErr_NoMemory();
24567 D(p->level--);
24568 return NULL;
24569 }
24570 ssize_t _children_capacity = 1;
24571 ssize_t _n = 0;
24572 { // lambda_param_with_default
24573 if (p->error_indicator) {
24574 D(p->level--);
24575 return NULL;
24576 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024577 D(fprintf(stderr, "%*c> _loop1_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024578 NameDefaultPair* lambda_param_with_default_var;
24579 while (
24580 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24581 )
24582 {
24583 _res = lambda_param_with_default_var;
24584 if (_n == _children_capacity) {
24585 _children_capacity *= 2;
24586 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24587 if (!_new_children) {
24588 p->error_indicator = 1;
24589 PyErr_NoMemory();
24590 D(p->level--);
24591 return NULL;
24592 }
24593 _children = _new_children;
24594 }
24595 _children[_n++] = _res;
24596 _mark = p->mark;
24597 }
24598 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024599 D(fprintf(stderr, "%*c%s _loop1_152[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24601 }
24602 if (_n == 0 || p->error_indicator) {
24603 PyMem_Free(_children);
24604 D(p->level--);
24605 return NULL;
24606 }
24607 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24608 if (!_seq) {
24609 PyMem_Free(_children);
24610 p->error_indicator = 1;
24611 PyErr_NoMemory();
24612 D(p->level--);
24613 return NULL;
24614 }
24615 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24616 PyMem_Free(_children);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024617 _PyPegen_insert_memo(p, _start_mark, _loop1_152_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024618 D(p->level--);
24619 return _seq;
24620}
24621
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024622// _tmp_153: ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024623static void *
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024624_tmp_153_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024625{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024626 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024627 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024628 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024629 return NULL;
24630 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024631 void * _res = NULL;
24632 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024633 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024634 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024635 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024636 return NULL;
24637 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024638 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024639 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024640 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024641 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024642 )
24643 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024644 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
24645 _res = _literal;
24646 goto done;
24647 }
24648 p->mark = _mark;
24649 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
24650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24651 }
24652 { // '**'
24653 if (p->error_indicator) {
24654 D(p->level--);
24655 return NULL;
24656 }
24657 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
24658 Token * _literal;
24659 if (
24660 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24661 )
24662 {
24663 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
24664 _res = _literal;
24665 goto done;
24666 }
24667 p->mark = _mark;
24668 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
24669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24670 }
24671 _res = NULL;
24672 done:
24673 D(p->level--);
24674 return _res;
24675}
24676
24677// _tmp_154: ':' | '**'
24678static void *
24679_tmp_154_rule(Parser *p)
24680{
24681 D(p->level++);
24682 if (p->error_indicator) {
24683 D(p->level--);
24684 return NULL;
24685 }
24686 void * _res = NULL;
24687 int _mark = p->mark;
24688 { // ':'
24689 if (p->error_indicator) {
24690 D(p->level--);
24691 return NULL;
24692 }
24693 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
24694 Token * _literal;
24695 if (
24696 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24697 )
24698 {
24699 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024700 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024701 goto done;
24702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024703 p->mark = _mark;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024704 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024706 }
24707 { // '**'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024708 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024709 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024710 return NULL;
24711 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024712 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024713 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024714 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024715 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024716 )
24717 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024718 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024719 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024720 goto done;
24721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024722 p->mark = _mark;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024723 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024726 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024727 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024728 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024729 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024730}
24731
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024732void *
24733_PyPegen_parse(Parser *p)
24734{
24735 // Initialize keywords
24736 p->keywords = reserved_keywords;
24737 p->n_keyword_lists = n_keyword_lists;
24738
24739 // Run parser
24740 void *result = NULL;
24741 if (p->start_rule == Py_file_input) {
24742 result = file_rule(p);
24743 } else if (p->start_rule == Py_single_input) {
24744 result = interactive_rule(p);
24745 } else if (p->start_rule == Py_eval_input) {
24746 result = eval_rule(p);
Guido van Rossumc001c092020-04-30 12:12:19 -070024747 } else if (p->start_rule == Py_func_type_input) {
24748 result = func_type_rule(p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024749 } else if (p->start_rule == Py_fstring_input) {
24750 result = fstring_rule(p);
24751 }
24752
24753 return result;
24754}
24755
24756// The end