blob: f74b6f297b0403bcaaf2e9d0745548171ef1b5f4 [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
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100346#define _loop0_109_type 1268
347#define _gather_108_type 1269
348#define _tmp_110_type 1270
349#define _loop0_112_type 1271
350#define _gather_111_type 1272
351#define _loop0_114_type 1273
352#define _gather_113_type 1274
353#define _loop0_116_type 1275
354#define _gather_115_type 1276
355#define _loop0_118_type 1277
356#define _gather_117_type 1278
357#define _loop0_119_type 1279
358#define _loop0_121_type 1280
359#define _gather_120_type 1281
360#define _tmp_122_type 1282
361#define _loop0_124_type 1283
362#define _gather_123_type 1284
363#define _loop0_126_type 1285
364#define _gather_125_type 1286
365#define _tmp_127_type 1287
Pablo Galindo102ca522020-06-28 00:40:41 +0100366#define _loop0_128_type 1288
367#define _loop0_129_type 1289
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100368#define _loop0_130_type 1290
Pablo Galindo102ca522020-06-28 00:40:41 +0100369#define _tmp_131_type 1291
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100370#define _tmp_132_type 1292
371#define _loop0_133_type 1293
372#define _tmp_134_type 1294
373#define _loop0_135_type 1295
Pablo Galindo102ca522020-06-28 00:40:41 +0100374#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
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100389#define _tmp_151_type 1311
390#define _tmp_152_type 1312
391#define _loop1_153_type 1313
392#define _loop1_154_type 1314
393#define _tmp_155_type 1315
394#define _tmp_156_type 1316
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100395
396static mod_ty file_rule(Parser *p);
397static mod_ty interactive_rule(Parser *p);
398static mod_ty eval_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700399static mod_ty func_type_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100400static expr_ty fstring_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700401static asdl_seq* type_expressions_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100402static asdl_seq* statements_rule(Parser *p);
403static asdl_seq* statement_rule(Parser *p);
404static asdl_seq* statement_newline_rule(Parser *p);
405static asdl_seq* simple_stmt_rule(Parser *p);
406static stmt_ty small_stmt_rule(Parser *p);
407static stmt_ty compound_stmt_rule(Parser *p);
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +0300408static stmt_ty assignment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100409static AugOperator* augassign_rule(Parser *p);
410static stmt_ty global_stmt_rule(Parser *p);
411static stmt_ty nonlocal_stmt_rule(Parser *p);
412static stmt_ty yield_stmt_rule(Parser *p);
413static stmt_ty assert_stmt_rule(Parser *p);
414static stmt_ty del_stmt_rule(Parser *p);
415static stmt_ty import_stmt_rule(Parser *p);
416static stmt_ty import_name_rule(Parser *p);
417static stmt_ty import_from_rule(Parser *p);
418static asdl_seq* import_from_targets_rule(Parser *p);
419static asdl_seq* import_from_as_names_rule(Parser *p);
420static alias_ty import_from_as_name_rule(Parser *p);
421static asdl_seq* dotted_as_names_rule(Parser *p);
422static alias_ty dotted_as_name_rule(Parser *p);
423static expr_ty dotted_name_rule(Parser *p);
424static stmt_ty if_stmt_rule(Parser *p);
425static stmt_ty elif_stmt_rule(Parser *p);
426static asdl_seq* else_block_rule(Parser *p);
427static stmt_ty while_stmt_rule(Parser *p);
428static stmt_ty for_stmt_rule(Parser *p);
429static stmt_ty with_stmt_rule(Parser *p);
430static withitem_ty with_item_rule(Parser *p);
431static stmt_ty try_stmt_rule(Parser *p);
432static excepthandler_ty except_block_rule(Parser *p);
433static asdl_seq* finally_block_rule(Parser *p);
434static stmt_ty return_stmt_rule(Parser *p);
435static stmt_ty raise_stmt_rule(Parser *p);
436static stmt_ty function_def_rule(Parser *p);
437static stmt_ty function_def_raw_rule(Parser *p);
Pablo Galindod9552412020-05-01 16:32:09 +0100438static Token* func_type_comment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100439static arguments_ty params_rule(Parser *p);
440static arguments_ty parameters_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700441static asdl_seq* slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100442static SlashWithDefault* slash_with_default_rule(Parser *p);
443static StarEtc* star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100444static arg_ty kwds_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700445static arg_ty param_no_default_rule(Parser *p);
446static NameDefaultPair* param_with_default_rule(Parser *p);
447static NameDefaultPair* param_maybe_default_rule(Parser *p);
448static arg_ty param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100449static expr_ty annotation_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700450static expr_ty default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100451static asdl_seq* decorators_rule(Parser *p);
452static stmt_ty class_def_rule(Parser *p);
453static stmt_ty class_def_raw_rule(Parser *p);
454static asdl_seq* block_rule(Parser *p);
455static asdl_seq* expressions_list_rule(Parser *p);
456static expr_ty star_expressions_rule(Parser *p);
457static expr_ty star_expression_rule(Parser *p);
458static asdl_seq* star_named_expressions_rule(Parser *p);
459static expr_ty star_named_expression_rule(Parser *p);
460static expr_ty named_expression_rule(Parser *p);
461static expr_ty annotated_rhs_rule(Parser *p);
462static expr_ty expressions_rule(Parser *p);
463static expr_ty expression_rule(Parser *p);
464static expr_ty lambdef_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700465static arguments_ty lambda_params_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100466static arguments_ty lambda_parameters_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700467static asdl_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100468static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
469static StarEtc* lambda_star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100470static arg_ty lambda_kwds_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700471static arg_ty lambda_param_no_default_rule(Parser *p);
472static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
473static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
474static arg_ty lambda_param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100475static expr_ty disjunction_rule(Parser *p);
476static expr_ty conjunction_rule(Parser *p);
477static expr_ty inversion_rule(Parser *p);
478static expr_ty comparison_rule(Parser *p);
479static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
480static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
481static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
482static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
483static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
484static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
485static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
486static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
487static CmpopExprPair* in_bitwise_or_rule(Parser *p);
488static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
489static CmpopExprPair* is_bitwise_or_rule(Parser *p);
490static expr_ty bitwise_or_rule(Parser *p);
491static expr_ty bitwise_xor_rule(Parser *p);
492static expr_ty bitwise_and_rule(Parser *p);
493static expr_ty shift_expr_rule(Parser *p);
494static expr_ty sum_rule(Parser *p);
495static expr_ty term_rule(Parser *p);
496static expr_ty factor_rule(Parser *p);
497static expr_ty power_rule(Parser *p);
498static expr_ty await_primary_rule(Parser *p);
499static expr_ty primary_rule(Parser *p);
500static expr_ty slices_rule(Parser *p);
501static expr_ty slice_rule(Parser *p);
502static expr_ty atom_rule(Parser *p);
503static expr_ty strings_rule(Parser *p);
504static expr_ty list_rule(Parser *p);
505static expr_ty listcomp_rule(Parser *p);
506static expr_ty tuple_rule(Parser *p);
507static expr_ty group_rule(Parser *p);
508static expr_ty genexp_rule(Parser *p);
509static expr_ty set_rule(Parser *p);
510static expr_ty setcomp_rule(Parser *p);
511static expr_ty dict_rule(Parser *p);
512static expr_ty dictcomp_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700513static asdl_seq* double_starred_kvpairs_rule(Parser *p);
514static KeyValuePair* double_starred_kvpair_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100515static KeyValuePair* kvpair_rule(Parser *p);
516static asdl_seq* for_if_clauses_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300517static comprehension_ty for_if_clause_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100518static expr_ty yield_expr_rule(Parser *p);
519static expr_ty arguments_rule(Parser *p);
520static expr_ty args_rule(Parser *p);
521static asdl_seq* kwargs_rule(Parser *p);
522static expr_ty starred_expression_rule(Parser *p);
523static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
524static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
525static expr_ty star_targets_rule(Parser *p);
526static asdl_seq* star_targets_seq_rule(Parser *p);
527static expr_ty star_target_rule(Parser *p);
528static expr_ty star_atom_rule(Parser *p);
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +0300529static expr_ty single_target_rule(Parser *p);
530static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100531static asdl_seq* del_targets_rule(Parser *p);
532static expr_ty del_target_rule(Parser *p);
533static expr_ty del_t_atom_rule(Parser *p);
534static asdl_seq* targets_rule(Parser *p);
535static expr_ty target_rule(Parser *p);
536static expr_ty t_primary_rule(Parser *p);
537static void *t_lookahead_rule(Parser *p);
538static expr_ty t_atom_rule(Parser *p);
539static void *incorrect_arguments_rule(Parser *p);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +0300540static void *invalid_kwarg_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100541static void *invalid_named_expression_rule(Parser *p);
542static void *invalid_assignment_rule(Parser *p);
Pablo Galindo102ca522020-06-28 00:40:41 +0100543static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300544static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100545static void *invalid_block_rule(Parser *p);
546static void *invalid_comprehension_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700547static void *invalid_dict_comprehension_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100548static void *invalid_parameters_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700549static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300550static void *invalid_star_etc_rule(Parser *p);
551static void *invalid_lambda_star_etc_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700552static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300553static void *invalid_with_item_rule(Parser *p);
554static void *invalid_for_target_rule(Parser *p);
555static void *invalid_group_rule(Parser *p);
Pablo Galindo275d7e12020-05-21 22:04:54 +0100556static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100557static asdl_seq *_loop0_1_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700558static asdl_seq *_loop0_2_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100559static asdl_seq *_loop0_4_rule(Parser *p);
560static asdl_seq *_gather_3_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700561static asdl_seq *_loop0_6_rule(Parser *p);
562static asdl_seq *_gather_5_rule(Parser *p);
563static asdl_seq *_loop0_8_rule(Parser *p);
564static asdl_seq *_gather_7_rule(Parser *p);
565static asdl_seq *_loop0_10_rule(Parser *p);
566static asdl_seq *_gather_9_rule(Parser *p);
567static asdl_seq *_loop1_11_rule(Parser *p);
568static asdl_seq *_loop0_13_rule(Parser *p);
569static asdl_seq *_gather_12_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100570static void *_tmp_14_rule(Parser *p);
571static void *_tmp_15_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700572static void *_tmp_16_rule(Parser *p);
573static void *_tmp_17_rule(Parser *p);
574static void *_tmp_18_rule(Parser *p);
575static void *_tmp_19_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100576static void *_tmp_20_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700577static void *_tmp_21_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100578static asdl_seq *_loop1_22_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700579static void *_tmp_23_rule(Parser *p);
580static void *_tmp_24_rule(Parser *p);
581static asdl_seq *_loop0_26_rule(Parser *p);
582static asdl_seq *_gather_25_rule(Parser *p);
583static asdl_seq *_loop0_28_rule(Parser *p);
584static asdl_seq *_gather_27_rule(Parser *p);
585static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300586static void *_tmp_30_rule(Parser *p);
587static asdl_seq *_loop0_31_rule(Parser *p);
588static asdl_seq *_loop1_32_rule(Parser *p);
589static asdl_seq *_loop0_34_rule(Parser *p);
590static asdl_seq *_gather_33_rule(Parser *p);
591static void *_tmp_35_rule(Parser *p);
592static asdl_seq *_loop0_37_rule(Parser *p);
593static asdl_seq *_gather_36_rule(Parser *p);
594static void *_tmp_38_rule(Parser *p);
595static asdl_seq *_loop0_40_rule(Parser *p);
596static asdl_seq *_gather_39_rule(Parser *p);
597static asdl_seq *_loop0_42_rule(Parser *p);
598static asdl_seq *_gather_41_rule(Parser *p);
599static asdl_seq *_loop0_44_rule(Parser *p);
600static asdl_seq *_gather_43_rule(Parser *p);
601static asdl_seq *_loop0_46_rule(Parser *p);
602static asdl_seq *_gather_45_rule(Parser *p);
603static void *_tmp_47_rule(Parser *p);
604static asdl_seq *_loop1_48_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300605static void *_tmp_49_rule(Parser *p);
606static void *_tmp_50_rule(Parser *p);
607static void *_tmp_51_rule(Parser *p);
608static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300609static void *_tmp_53_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300610static asdl_seq *_loop0_54_rule(Parser *p);
611static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300612static asdl_seq *_loop0_56_rule(Parser *p);
613static asdl_seq *_loop1_57_rule(Parser *p);
614static asdl_seq *_loop0_58_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700615static asdl_seq *_loop1_59_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300616static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300617static asdl_seq *_loop1_61_rule(Parser *p);
618static asdl_seq *_loop0_62_rule(Parser *p);
619static asdl_seq *_loop1_63_rule(Parser *p);
620static asdl_seq *_loop0_64_rule(Parser *p);
621static asdl_seq *_loop1_65_rule(Parser *p);
622static asdl_seq *_loop0_66_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300623static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300624static asdl_seq *_loop1_68_rule(Parser *p);
625static void *_tmp_69_rule(Parser *p);
626static asdl_seq *_loop0_71_rule(Parser *p);
627static asdl_seq *_gather_70_rule(Parser *p);
628static asdl_seq *_loop1_72_rule(Parser *p);
629static asdl_seq *_loop0_74_rule(Parser *p);
630static asdl_seq *_gather_73_rule(Parser *p);
631static asdl_seq *_loop1_75_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700632static asdl_seq *_loop0_76_rule(Parser *p);
633static asdl_seq *_loop0_77_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300634static asdl_seq *_loop0_78_rule(Parser *p);
635static asdl_seq *_loop1_79_rule(Parser *p);
636static asdl_seq *_loop0_80_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700637static asdl_seq *_loop1_81_rule(Parser *p);
638static asdl_seq *_loop1_82_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300639static asdl_seq *_loop1_83_rule(Parser *p);
640static asdl_seq *_loop0_84_rule(Parser *p);
641static asdl_seq *_loop1_85_rule(Parser *p);
642static asdl_seq *_loop0_86_rule(Parser *p);
643static asdl_seq *_loop1_87_rule(Parser *p);
644static asdl_seq *_loop0_88_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700645static asdl_seq *_loop1_89_rule(Parser *p);
646static asdl_seq *_loop1_90_rule(Parser *p);
647static asdl_seq *_loop1_91_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300648static asdl_seq *_loop1_92_rule(Parser *p);
649static void *_tmp_93_rule(Parser *p);
650static asdl_seq *_loop0_95_rule(Parser *p);
651static asdl_seq *_gather_94_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700652static void *_tmp_96_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700653static void *_tmp_97_rule(Parser *p);
654static void *_tmp_98_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300655static void *_tmp_99_rule(Parser *p);
656static asdl_seq *_loop1_100_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300657static void *_tmp_101_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300658static void *_tmp_102_rule(Parser *p);
659static asdl_seq *_loop0_104_rule(Parser *p);
660static asdl_seq *_gather_103_rule(Parser *p);
661static asdl_seq *_loop1_105_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700662static asdl_seq *_loop0_106_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300663static asdl_seq *_loop0_107_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100664static asdl_seq *_loop0_109_rule(Parser *p);
665static asdl_seq *_gather_108_rule(Parser *p);
666static void *_tmp_110_rule(Parser *p);
667static asdl_seq *_loop0_112_rule(Parser *p);
668static asdl_seq *_gather_111_rule(Parser *p);
669static asdl_seq *_loop0_114_rule(Parser *p);
670static asdl_seq *_gather_113_rule(Parser *p);
671static asdl_seq *_loop0_116_rule(Parser *p);
672static asdl_seq *_gather_115_rule(Parser *p);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +0300673static asdl_seq *_loop0_118_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100674static asdl_seq *_gather_117_rule(Parser *p);
675static asdl_seq *_loop0_119_rule(Parser *p);
676static asdl_seq *_loop0_121_rule(Parser *p);
677static asdl_seq *_gather_120_rule(Parser *p);
678static void *_tmp_122_rule(Parser *p);
679static asdl_seq *_loop0_124_rule(Parser *p);
680static asdl_seq *_gather_123_rule(Parser *p);
681static asdl_seq *_loop0_126_rule(Parser *p);
682static asdl_seq *_gather_125_rule(Parser *p);
683static void *_tmp_127_rule(Parser *p);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +0300684static asdl_seq *_loop0_128_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700685static asdl_seq *_loop0_129_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100686static asdl_seq *_loop0_130_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700687static void *_tmp_131_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100688static void *_tmp_132_rule(Parser *p);
689static asdl_seq *_loop0_133_rule(Parser *p);
690static void *_tmp_134_rule(Parser *p);
691static asdl_seq *_loop0_135_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700692static void *_tmp_136_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100693static void *_tmp_137_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700694static void *_tmp_138_rule(Parser *p);
695static void *_tmp_139_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300696static void *_tmp_140_rule(Parser *p);
697static void *_tmp_141_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700698static void *_tmp_142_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300699static void *_tmp_143_rule(Parser *p);
700static void *_tmp_144_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300701static void *_tmp_145_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700702static void *_tmp_146_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300703static void *_tmp_147_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300704static void *_tmp_148_rule(Parser *p);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -0700705static void *_tmp_149_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700706static void *_tmp_150_rule(Parser *p);
Pablo Galindo8de34cd2020-09-02 21:30:51 +0100707static void *_tmp_151_rule(Parser *p);
708static void *_tmp_152_rule(Parser *p);
709static asdl_seq *_loop1_153_rule(Parser *p);
710static asdl_seq *_loop1_154_rule(Parser *p);
711static void *_tmp_155_rule(Parser *p);
712static void *_tmp_156_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100713
714
715// file: statements? $
716static mod_ty
717file_rule(Parser *p)
718{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700719 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700721 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100722 return NULL;
723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100724 mod_ty _res = NULL;
725 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100726 { // statements? $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300727 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700728 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300729 return NULL;
730 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700731 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100732 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100733 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100734 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100735 (a = statements_rule(p), 1) // statements?
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100736 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100737 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100738 )
739 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700740 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100741 _res = _PyPegen_make_module ( p , a );
742 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100743 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700744 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100745 return NULL;
746 }
747 goto done;
748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100749 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700750 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100753 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100754 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700755 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100756 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100757}
758
759// interactive: statement_newline
760static mod_ty
761interactive_rule(Parser *p)
762{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700763 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100764 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700765 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100766 return NULL;
767 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100768 mod_ty _res = NULL;
769 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100770 { // statement_newline
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300771 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700772 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300773 return NULL;
774 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700775 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100776 asdl_seq* a;
777 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100778 (a = statement_newline_rule(p)) // statement_newline
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100779 )
780 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700781 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100782 _res = Interactive ( a , p -> arena );
783 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100784 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700785 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100786 return NULL;
787 }
788 goto done;
789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100790 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700791 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100794 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100795 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700796 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100797 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100798}
799
800// eval: expressions NEWLINE* $
801static mod_ty
802eval_rule(Parser *p)
803{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700804 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700806 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100807 return NULL;
808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100809 mod_ty _res = NULL;
810 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100811 { // expressions NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300812 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700813 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300814 return NULL;
815 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700816 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100817 asdl_seq * _loop0_1_var;
818 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100819 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100820 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100821 (a = expressions_rule(p)) // expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100822 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100823 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100824 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100825 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100826 )
827 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700828 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100829 _res = Expression ( a , p -> arena );
830 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100831 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700832 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100833 return NULL;
834 }
835 goto done;
836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100837 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700838 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100841 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100842 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700843 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100844 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100845}
846
Guido van Rossumc001c092020-04-30 12:12:19 -0700847// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
848static mod_ty
849func_type_rule(Parser *p)
850{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700851 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700852 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700853 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700854 return NULL;
855 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100856 mod_ty _res = NULL;
857 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700858 { // '(' type_expressions? ')' '->' expression NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300859 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700860 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300861 return NULL;
862 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700863 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 +0100864 Token * _literal;
865 Token * _literal_1;
866 Token * _literal_2;
Guido van Rossumc001c092020-04-30 12:12:19 -0700867 asdl_seq * _loop0_2_var;
868 void *a;
869 expr_ty b;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100870 Token * endmarker_var;
Guido van Rossumc001c092020-04-30 12:12:19 -0700871 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100872 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Guido van Rossumc001c092020-04-30 12:12:19 -0700873 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100874 (a = type_expressions_rule(p), 1) // type_expressions?
Guido van Rossumc001c092020-04-30 12:12:19 -0700875 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100876 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -0700877 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100878 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
Guido van Rossumc001c092020-04-30 12:12:19 -0700879 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100880 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700881 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100882 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
Guido van Rossumc001c092020-04-30 12:12:19 -0700883 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100884 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Guido van Rossumc001c092020-04-30 12:12:19 -0700885 )
886 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700887 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 +0100888 _res = FunctionType ( a , b , p -> arena );
889 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700890 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700891 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700892 return NULL;
893 }
894 goto done;
895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100896 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700897 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700899 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100900 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -0700901 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700902 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100903 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -0700904}
905
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100906// fstring: star_expressions
907static expr_ty
908fstring_rule(Parser *p)
909{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700910 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100911 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700912 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100913 return NULL;
914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100915 expr_ty _res = NULL;
916 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100917 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300918 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700919 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300920 return NULL;
921 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700922 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100923 expr_ty star_expressions_var;
924 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100925 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100926 )
927 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700928 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100929 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100930 goto done;
931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100932 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700933 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100935 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100936 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100937 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700938 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100939 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100940}
941
Guido van Rossumc001c092020-04-30 12:12:19 -0700942// type_expressions:
943// | ','.expression+ ',' '*' expression ',' '**' expression
944// | ','.expression+ ',' '*' expression
945// | ','.expression+ ',' '**' expression
Shantanu603d3542020-05-03 22:08:14 -0700946// | '*' expression ',' '**' expression
947// | '*' expression
948// | '**' expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700949// | ','.expression+
950static asdl_seq*
951type_expressions_rule(Parser *p)
952{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700953 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700954 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700955 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700956 return NULL;
957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100958 asdl_seq* _res = NULL;
959 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700960 { // ','.expression+ ',' '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300961 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700962 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300963 return NULL;
964 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700965 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 +0100966 Token * _literal;
967 Token * _literal_1;
968 Token * _literal_2;
969 Token * _literal_3;
Guido van Rossumc001c092020-04-30 12:12:19 -0700970 asdl_seq * a;
971 expr_ty b;
972 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -0700973 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100974 (a = _gather_3_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -0700975 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100976 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700977 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100978 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -0700979 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100980 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700981 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100982 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700983 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100984 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -0700985 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100986 (c = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700987 )
988 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700989 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 +0100990 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
991 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700992 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700993 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700994 return NULL;
995 }
996 goto done;
997 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100998 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700999 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001001 }
1002 { // ','.expression+ ',' '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001003 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001004 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001005 return NULL;
1006 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001007 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001008 Token * _literal;
1009 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001010 asdl_seq * a;
1011 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001012 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001013 (a = _gather_5_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001014 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001015 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001016 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001017 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -07001018 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001019 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001020 )
1021 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001022 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 +01001023 _res = _PyPegen_seq_append_to_end ( p , a , b );
1024 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001025 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001026 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001027 return NULL;
1028 }
1029 goto done;
1030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001031 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001032 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001034 }
1035 { // ','.expression+ ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001036 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001037 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001038 return NULL;
1039 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001040 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001041 Token * _literal;
1042 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001043 asdl_seq * a;
1044 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001045 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001046 (a = _gather_7_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001047 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001048 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001049 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001050 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07001051 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001052 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001053 )
1054 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001055 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 +01001056 _res = _PyPegen_seq_append_to_end ( p , a , b );
1057 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001058 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001059 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001060 return NULL;
1061 }
1062 goto done;
1063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001064 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001065 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001067 }
Shantanu603d3542020-05-03 22:08:14 -07001068 { // '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001069 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001070 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001071 return NULL;
1072 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001073 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001074 Token * _literal;
1075 Token * _literal_1;
1076 Token * _literal_2;
Shantanu603d3542020-05-03 22:08:14 -07001077 expr_ty a;
1078 expr_ty b;
Shantanu603d3542020-05-03 22:08:14 -07001079 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001080 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001081 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001082 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001083 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001084 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Shantanu603d3542020-05-03 22:08:14 -07001085 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001086 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001087 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001088 (b = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001089 )
1090 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001091 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 +01001092 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_singleton_seq ( p , a ) ) , b );
1093 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001094 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001095 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001096 return NULL;
1097 }
1098 goto done;
1099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001100 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001101 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001103 }
1104 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001105 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001106 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001107 return NULL;
1108 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001109 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001110 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001111 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001112 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001113 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001114 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001115 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001116 )
1117 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001118 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001119 _res = _PyPegen_singleton_seq ( p , a );
1120 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001121 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001122 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001123 return NULL;
1124 }
1125 goto done;
1126 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001127 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001128 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001130 }
1131 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001132 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001133 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001134 return NULL;
1135 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001136 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001137 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001138 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001139 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001140 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001141 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001142 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001143 )
1144 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001145 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001146 _res = _PyPegen_singleton_seq ( p , a );
1147 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001148 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001149 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001150 return NULL;
1151 }
1152 goto done;
1153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001154 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001155 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001157 }
Guido van Rossumc001c092020-04-30 12:12:19 -07001158 { // ','.expression+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001159 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001160 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001161 return NULL;
1162 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001163 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001164 asdl_seq * _gather_9_var;
1165 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001166 (_gather_9_var = _gather_9_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001167 )
1168 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001169 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001170 _res = _gather_9_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07001171 goto done;
1172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001173 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001174 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001177 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07001178 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001179 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001180 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07001181}
1182
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001183// statements: statement+
1184static asdl_seq*
1185statements_rule(Parser *p)
1186{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001187 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001188 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001189 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001190 return NULL;
1191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001192 asdl_seq* _res = NULL;
1193 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001194 { // statement+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001195 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001196 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001197 return NULL;
1198 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001199 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001200 asdl_seq * a;
1201 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001202 (a = _loop1_11_rule(p)) // statement+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001203 )
1204 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001205 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001206 _res = _PyPegen_seq_flatten ( p , a );
1207 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001208 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001209 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001210 return NULL;
1211 }
1212 goto done;
1213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001214 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001215 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001218 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001219 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001220 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001221 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001222}
1223
1224// statement: compound_stmt | simple_stmt
1225static asdl_seq*
1226statement_rule(Parser *p)
1227{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001228 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001229 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001230 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001231 return NULL;
1232 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001233 asdl_seq* _res = NULL;
1234 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001235 { // compound_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001236 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001237 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001238 return NULL;
1239 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001240 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001241 stmt_ty a;
1242 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001243 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001244 )
1245 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001246 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001247 _res = _PyPegen_singleton_seq ( p , a );
1248 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001249 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001250 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001251 return NULL;
1252 }
1253 goto done;
1254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001255 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001256 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001258 }
1259 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001260 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001261 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001262 return NULL;
1263 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001264 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001265 asdl_seq* simple_stmt_var;
1266 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001267 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001268 )
1269 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001270 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001271 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001272 goto done;
1273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001274 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001275 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001278 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001279 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001280 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001281 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001282}
1283
1284// statement_newline: compound_stmt NEWLINE | simple_stmt | NEWLINE | $
1285static asdl_seq*
1286statement_newline_rule(Parser *p)
1287{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001288 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001289 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001290 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001291 return NULL;
1292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001293 asdl_seq* _res = NULL;
1294 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001295 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1296 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001298 return NULL;
1299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001300 int _start_lineno = p->tokens[_mark]->lineno;
1301 UNUSED(_start_lineno); // Only used by EXTRA macro
1302 int _start_col_offset = p->tokens[_mark]->col_offset;
1303 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001304 { // compound_stmt NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001305 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001306 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001307 return NULL;
1308 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001309 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 +01001310 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001311 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001312 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001313 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001314 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001315 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001316 )
1317 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001318 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 +01001319 _res = _PyPegen_singleton_seq ( p , a );
1320 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001321 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001322 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001323 return NULL;
1324 }
1325 goto done;
1326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001327 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001328 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001330 }
1331 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001332 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001333 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001334 return NULL;
1335 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001336 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001337 asdl_seq* simple_stmt_var;
1338 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001339 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001340 )
1341 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001342 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 +01001343 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001344 goto done;
1345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001346 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001347 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001349 }
1350 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001351 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001352 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001353 return NULL;
1354 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001355 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001356 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001357 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001358 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001359 )
1360 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001361 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001362 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1363 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001364 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001365 return NULL;
1366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001367 int _end_lineno = _token->end_lineno;
1368 UNUSED(_end_lineno); // Only used by EXTRA macro
1369 int _end_col_offset = _token->end_col_offset;
1370 UNUSED(_end_col_offset); // Only used by EXTRA macro
1371 _res = _PyPegen_singleton_seq ( p , CHECK ( _Py_Pass ( EXTRA ) ) );
1372 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001373 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001374 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001375 return NULL;
1376 }
1377 goto done;
1378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001379 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001380 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001382 }
1383 { // $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001384 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001385 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001386 return NULL;
1387 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001388 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001389 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001390 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001391 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001392 )
1393 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001394 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001395 _res = _PyPegen_interactive_exit ( p );
1396 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001397 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001398 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001399 return NULL;
1400 }
1401 goto done;
1402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001403 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001404 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001407 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001408 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001409 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001410 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001411}
1412
1413// simple_stmt: small_stmt !';' NEWLINE | ';'.small_stmt+ ';'? NEWLINE
1414static asdl_seq*
1415simple_stmt_rule(Parser *p)
1416{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001417 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001418 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001419 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001420 return NULL;
1421 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001422 asdl_seq* _res = NULL;
1423 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001424 { // small_stmt !';' NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001425 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001426 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001427 return NULL;
1428 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001429 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 +01001430 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001431 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001432 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001433 (a = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001434 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001435 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001436 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001437 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001438 )
1439 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001440 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 +01001441 _res = _PyPegen_singleton_seq ( p , a );
1442 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001443 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001444 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001445 return NULL;
1446 }
1447 goto done;
1448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001449 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001450 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001452 }
1453 { // ';'.small_stmt+ ';'? NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001454 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001455 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001456 return NULL;
1457 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001458 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 +01001459 void *_opt_var;
1460 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001461 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001462 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001463 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001464 (a = _gather_12_rule(p)) // ';'.small_stmt+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001465 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001466 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001467 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001468 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001469 )
1470 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001471 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 +01001472 _res = a;
1473 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001474 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001475 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001476 return NULL;
1477 }
1478 goto done;
1479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001480 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001481 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001484 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001485 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001486 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001487 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001488}
1489
1490// small_stmt:
1491// | assignment
1492// | star_expressions
1493// | &'return' return_stmt
1494// | &('import' | 'from') import_stmt
1495// | &'raise' raise_stmt
1496// | 'pass'
1497// | &'del' del_stmt
1498// | &'yield' yield_stmt
1499// | &'assert' assert_stmt
1500// | 'break'
1501// | 'continue'
1502// | &'global' global_stmt
1503// | &'nonlocal' nonlocal_stmt
1504static stmt_ty
1505small_stmt_rule(Parser *p)
1506{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001507 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001508 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001509 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001510 return NULL;
1511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001512 stmt_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001513 if (_PyPegen_is_memoized(p, small_stmt_type, &_res)) {
1514 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001515 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001517 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001518 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1519 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001521 return NULL;
1522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001523 int _start_lineno = p->tokens[_mark]->lineno;
1524 UNUSED(_start_lineno); // Only used by EXTRA macro
1525 int _start_col_offset = p->tokens[_mark]->col_offset;
1526 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001527 { // assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001530 return NULL;
1531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001532 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03001533 stmt_ty assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001534 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001535 (assignment_var = assignment_rule(p)) // assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001536 )
1537 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001538 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001539 _res = assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001540 goto done;
1541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001542 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001543 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001545 }
1546 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001547 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001548 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001549 return NULL;
1550 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001551 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001552 expr_ty e;
1553 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001554 (e = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001555 )
1556 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001557 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 +01001558 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1559 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001560 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001561 return NULL;
1562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001563 int _end_lineno = _token->end_lineno;
1564 UNUSED(_end_lineno); // Only used by EXTRA macro
1565 int _end_col_offset = _token->end_col_offset;
1566 UNUSED(_end_col_offset); // Only used by EXTRA macro
1567 _res = _Py_Expr ( e , EXTRA );
1568 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001569 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001570 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001571 return NULL;
1572 }
1573 goto done;
1574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001575 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001576 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001578 }
1579 { // &'return' return_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001580 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001581 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001582 return NULL;
1583 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001584 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 +01001585 stmt_ty return_stmt_var;
1586 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001587 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001588 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001589 (return_stmt_var = return_stmt_rule(p)) // return_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001590 )
1591 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001592 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 +01001593 _res = return_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001594 goto done;
1595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001596 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001597 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001599 }
1600 { // &('import' | 'from') import_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001603 return NULL;
1604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001605 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 +01001606 stmt_ty import_stmt_var;
1607 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001608 _PyPegen_lookahead(1, _tmp_14_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001609 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001610 (import_stmt_var = import_stmt_rule(p)) // import_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001611 )
1612 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001613 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 +01001614 _res = import_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001615 goto done;
1616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001617 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001618 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001620 }
1621 { // &'raise' raise_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001622 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001623 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001624 return NULL;
1625 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001626 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 +01001627 stmt_ty raise_stmt_var;
1628 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001629 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001630 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001631 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001632 )
1633 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001634 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 +01001635 _res = raise_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001636 goto done;
1637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001638 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001639 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001641 }
1642 { // 'pass'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001643 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001644 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001645 return NULL;
1646 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001647 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001648 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001649 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001650 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001651 )
1652 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001653 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001654 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1655 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001656 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001657 return NULL;
1658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001659 int _end_lineno = _token->end_lineno;
1660 UNUSED(_end_lineno); // Only used by EXTRA macro
1661 int _end_col_offset = _token->end_col_offset;
1662 UNUSED(_end_col_offset); // Only used by EXTRA macro
1663 _res = _Py_Pass ( EXTRA );
1664 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001665 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001666 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001667 return NULL;
1668 }
1669 goto done;
1670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001671 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001672 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001674 }
1675 { // &'del' del_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001677 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001678 return NULL;
1679 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001680 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 +01001681 stmt_ty del_stmt_var;
1682 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001683 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001684 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001685 (del_stmt_var = del_stmt_rule(p)) // del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001686 )
1687 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001688 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 +01001689 _res = del_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001690 goto done;
1691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001692 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001693 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001695 }
1696 { // &'yield' yield_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001697 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001698 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001699 return NULL;
1700 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001701 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 +01001702 stmt_ty yield_stmt_var;
1703 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001704 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001705 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001706 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001707 )
1708 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001709 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 +01001710 _res = yield_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001711 goto done;
1712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001713 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001714 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001716 }
1717 { // &'assert' assert_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001719 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001720 return NULL;
1721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001722 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 +01001723 stmt_ty assert_stmt_var;
1724 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001725 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001726 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001727 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001728 )
1729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001730 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 +01001731 _res = assert_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001732 goto done;
1733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001735 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001737 }
1738 { // 'break'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001739 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001740 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001741 return NULL;
1742 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001743 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001744 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001745 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001746 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001747 )
1748 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001749 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001750 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1751 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001752 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001753 return NULL;
1754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001755 int _end_lineno = _token->end_lineno;
1756 UNUSED(_end_lineno); // Only used by EXTRA macro
1757 int _end_col_offset = _token->end_col_offset;
1758 UNUSED(_end_col_offset); // Only used by EXTRA macro
1759 _res = _Py_Break ( EXTRA );
1760 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001761 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001762 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001763 return NULL;
1764 }
1765 goto done;
1766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001767 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001768 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001770 }
1771 { // 'continue'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001773 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001774 return NULL;
1775 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001776 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001777 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001778 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001779 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001780 )
1781 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001782 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001783 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1784 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001785 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001786 return NULL;
1787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001788 int _end_lineno = _token->end_lineno;
1789 UNUSED(_end_lineno); // Only used by EXTRA macro
1790 int _end_col_offset = _token->end_col_offset;
1791 UNUSED(_end_col_offset); // Only used by EXTRA macro
1792 _res = _Py_Continue ( EXTRA );
1793 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001794 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001796 return NULL;
1797 }
1798 goto done;
1799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001800 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001801 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001803 }
1804 { // &'global' global_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001806 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001807 return NULL;
1808 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001809 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 +01001810 stmt_ty global_stmt_var;
1811 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001812 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001813 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001814 (global_stmt_var = global_stmt_rule(p)) // global_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001815 )
1816 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001817 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 +01001818 _res = global_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001819 goto done;
1820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001821 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001822 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001824 }
1825 { // &'nonlocal' nonlocal_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001826 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001827 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001828 return NULL;
1829 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001830 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 +01001831 stmt_ty nonlocal_stmt_var;
1832 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001833 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001834 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001835 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001836 )
1837 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001838 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 +01001839 _res = nonlocal_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001840 goto done;
1841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001842 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001843 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001845 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001846 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001847 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001848 _PyPegen_insert_memo(p, _mark, small_stmt_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001849 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001850 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001851}
1852
1853// compound_stmt:
1854// | &('def' | '@' | ASYNC) function_def
1855// | &'if' if_stmt
1856// | &('class' | '@') class_def
1857// | &('with' | ASYNC) with_stmt
1858// | &('for' | ASYNC) for_stmt
1859// | &'try' try_stmt
1860// | &'while' while_stmt
1861static stmt_ty
1862compound_stmt_rule(Parser *p)
1863{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001864 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001865 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001867 return NULL;
1868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001869 stmt_ty _res = NULL;
1870 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001871 { // &('def' | '@' | ASYNC) function_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001872 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001873 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001874 return NULL;
1875 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001876 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 +01001877 stmt_ty function_def_var;
1878 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001879 _PyPegen_lookahead(1, _tmp_15_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001880 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001881 (function_def_var = function_def_rule(p)) // function_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001882 )
1883 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001884 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 +01001885 _res = function_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001886 goto done;
1887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001888 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001889 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001891 }
1892 { // &'if' if_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001893 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001894 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001895 return NULL;
1896 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001897 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 +01001898 stmt_ty if_stmt_var;
1899 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001900 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001901 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001902 (if_stmt_var = if_stmt_rule(p)) // if_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001903 )
1904 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001905 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 +01001906 _res = if_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001907 goto done;
1908 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001909 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001910 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001912 }
1913 { // &('class' | '@') class_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001914 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001915 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001916 return NULL;
1917 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001918 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 +01001919 stmt_ty class_def_var;
1920 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001921 _PyPegen_lookahead(1, _tmp_16_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001922 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001923 (class_def_var = class_def_rule(p)) // class_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001924 )
1925 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001926 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 +01001927 _res = class_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001928 goto done;
1929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001930 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001931 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001933 }
1934 { // &('with' | ASYNC) with_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001935 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001936 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001937 return NULL;
1938 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001939 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 +01001940 stmt_ty with_stmt_var;
1941 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001942 _PyPegen_lookahead(1, _tmp_17_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001943 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001944 (with_stmt_var = with_stmt_rule(p)) // with_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001945 )
1946 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001947 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 +01001948 _res = with_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001949 goto done;
1950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001951 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001952 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001954 }
1955 { // &('for' | ASYNC) for_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001956 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001957 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001958 return NULL;
1959 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001960 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 +01001961 stmt_ty for_stmt_var;
1962 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001963 _PyPegen_lookahead(1, _tmp_18_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001964 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001965 (for_stmt_var = for_stmt_rule(p)) // for_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001966 )
1967 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001968 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 +01001969 _res = for_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001970 goto done;
1971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001972 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001973 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001975 }
1976 { // &'try' try_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001977 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001978 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001979 return NULL;
1980 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001981 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 +01001982 stmt_ty try_stmt_var;
1983 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001984 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001985 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001986 (try_stmt_var = try_stmt_rule(p)) // try_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001987 )
1988 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001989 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 +01001990 _res = try_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001991 goto done;
1992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001993 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001994 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001996 }
1997 { // &'while' while_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001998 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001999 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002000 return NULL;
2001 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002002 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 +01002003 stmt_ty while_stmt_var;
2004 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002005 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002006 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002007 (while_stmt_var = while_stmt_rule(p)) // while_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002008 )
2009 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002010 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 +01002011 _res = while_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002012 goto done;
2013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002014 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002015 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002018 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002019 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002020 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002021 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002022}
2023
2024// assignment:
2025// | NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002026// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002027// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002028// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002029// | invalid_assignment
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03002030static stmt_ty
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002031assignment_rule(Parser *p)
2032{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002033 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002034 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002035 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002036 return NULL;
2037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002038 stmt_ty _res = NULL;
2039 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002040 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2041 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002042 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002043 return NULL;
2044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002045 int _start_lineno = p->tokens[_mark]->lineno;
2046 UNUSED(_start_lineno); // Only used by EXTRA macro
2047 int _start_col_offset = p->tokens[_mark]->col_offset;
2048 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002049 { // NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002050 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002051 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002052 return NULL;
2053 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002054 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 +01002055 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002056 expr_ty a;
2057 expr_ty b;
2058 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002059 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002060 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002061 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002062 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002063 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002064 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002065 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002066 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002067 )
2068 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002069 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 +01002070 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2071 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002072 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002073 return NULL;
2074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002075 int _end_lineno = _token->end_lineno;
2076 UNUSED(_end_lineno); // Only used by EXTRA macro
2077 int _end_col_offset = _token->end_col_offset;
2078 UNUSED(_end_col_offset); // Only used by EXTRA macro
2079 _res = CHECK_VERSION ( 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
2080 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002081 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002082 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002083 return NULL;
2084 }
2085 goto done;
2086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002087 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002088 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002090 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002091 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002092 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002093 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002094 return NULL;
2095 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002096 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 +01002097 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002098 void *a;
2099 expr_ty b;
2100 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002101 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002102 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002103 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002104 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002105 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002106 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002107 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002108 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002109 )
2110 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002111 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 +01002112 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2113 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002114 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002115 return NULL;
2116 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002117 int _end_lineno = _token->end_lineno;
2118 UNUSED(_end_lineno); // Only used by EXTRA macro
2119 int _end_col_offset = _token->end_col_offset;
2120 UNUSED(_end_col_offset); // Only used by EXTRA macro
2121 _res = CHECK_VERSION ( 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
2122 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002123 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002124 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002125 return NULL;
2126 }
2127 goto done;
2128 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002129 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002130 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002132 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002133 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002134 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002135 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002136 return NULL;
2137 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002138 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 +01002139 asdl_seq * a;
2140 void *b;
Guido van Rossumc001c092020-04-30 12:12:19 -07002141 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002142 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002143 (a = _loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002144 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002145 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -07002146 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002147 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2148 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002149 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002150 )
2151 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002152 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 +01002153 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2154 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002155 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002156 return NULL;
2157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002158 int _end_lineno = _token->end_lineno;
2159 UNUSED(_end_lineno); // Only used by EXTRA macro
2160 int _end_col_offset = _token->end_col_offset;
2161 UNUSED(_end_col_offset); // Only used by EXTRA macro
2162 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2163 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002164 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002165 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002166 return NULL;
2167 }
2168 goto done;
2169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002170 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002171 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002173 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002174 { // single_target augassign ~ (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002175 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002176 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002177 return NULL;
2178 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002179 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2180 int _cut_var = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002181 expr_ty a;
2182 AugOperator* b;
2183 void *c;
2184 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002185 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002186 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002187 (b = augassign_rule(p)) // augassign
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002188 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002189 (_cut_var = 1)
2190 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002191 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002192 )
2193 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002194 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 +01002195 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2196 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002197 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002198 return NULL;
2199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002200 int _end_lineno = _token->end_lineno;
2201 UNUSED(_end_lineno); // Only used by EXTRA macro
2202 int _end_col_offset = _token->end_col_offset;
2203 UNUSED(_end_col_offset); // Only used by EXTRA macro
2204 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2205 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002206 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002207 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002208 return NULL;
2209 }
2210 goto done;
2211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002212 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002213 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2215 if (_cut_var) {
2216 D(p->level--);
2217 return NULL;
2218 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002219 }
2220 { // invalid_assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002221 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002222 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002223 return NULL;
2224 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002225 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002226 void *invalid_assignment_var;
2227 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002228 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002229 )
2230 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002231 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002232 _res = invalid_assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002233 goto done;
2234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002235 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002236 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002238 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002239 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002240 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002241 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002242 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002243}
2244
2245// augassign:
2246// | '+='
2247// | '-='
2248// | '*='
2249// | '@='
2250// | '/='
2251// | '%='
2252// | '&='
2253// | '|='
2254// | '^='
2255// | '<<='
2256// | '>>='
2257// | '**='
2258// | '//='
2259static AugOperator*
2260augassign_rule(Parser *p)
2261{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002262 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002263 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002264 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002265 return NULL;
2266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002267 AugOperator* _res = NULL;
2268 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002269 { // '+='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002270 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002271 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002272 return NULL;
2273 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002274 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002275 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002276 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002277 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002278 )
2279 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002280 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002281 _res = _PyPegen_augoperator ( p , Add );
2282 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002283 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002284 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002285 return NULL;
2286 }
2287 goto done;
2288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002289 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002290 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002292 }
2293 { // '-='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002294 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002295 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002296 return NULL;
2297 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002298 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002299 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002300 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002301 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002302 )
2303 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002304 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002305 _res = _PyPegen_augoperator ( p , Sub );
2306 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002307 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002308 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002309 return NULL;
2310 }
2311 goto done;
2312 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002313 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002314 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002316 }
2317 { // '*='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002320 return NULL;
2321 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002322 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002323 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002324 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002325 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002326 )
2327 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002328 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002329 _res = _PyPegen_augoperator ( p , Mult );
2330 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002331 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002332 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002333 return NULL;
2334 }
2335 goto done;
2336 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002337 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002338 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002340 }
2341 { // '@='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002342 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002343 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002344 return NULL;
2345 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002346 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002347 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002348 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002349 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002350 )
2351 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002352 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002353 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
2354 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002355 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002356 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002357 return NULL;
2358 }
2359 goto done;
2360 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002361 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002362 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002364 }
2365 { // '/='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002367 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002368 return NULL;
2369 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002370 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002371 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002372 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002373 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002374 )
2375 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002376 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002377 _res = _PyPegen_augoperator ( p , Div );
2378 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002379 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002380 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002381 return NULL;
2382 }
2383 goto done;
2384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002385 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002386 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002388 }
2389 { // '%='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002390 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002391 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002392 return NULL;
2393 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002394 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002395 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002396 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002397 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002398 )
2399 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002400 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002401 _res = _PyPegen_augoperator ( p , Mod );
2402 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002403 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002404 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002405 return NULL;
2406 }
2407 goto done;
2408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002409 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002410 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002412 }
2413 { // '&='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002414 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002415 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002416 return NULL;
2417 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002418 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002419 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002420 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002421 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002422 )
2423 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002424 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002425 _res = _PyPegen_augoperator ( p , BitAnd );
2426 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002427 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002428 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002429 return NULL;
2430 }
2431 goto done;
2432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002433 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002434 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002436 }
2437 { // '|='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002438 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002439 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002440 return NULL;
2441 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002442 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002443 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002444 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002445 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002446 )
2447 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002448 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002449 _res = _PyPegen_augoperator ( p , BitOr );
2450 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002451 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002452 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002453 return NULL;
2454 }
2455 goto done;
2456 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002457 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002458 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002460 }
2461 { // '^='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002462 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002463 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002464 return NULL;
2465 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002466 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002467 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002468 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002469 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002470 )
2471 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002472 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002473 _res = _PyPegen_augoperator ( p , BitXor );
2474 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002475 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002476 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002477 return NULL;
2478 }
2479 goto done;
2480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002481 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002482 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002484 }
2485 { // '<<='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002486 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002487 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002488 return NULL;
2489 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002490 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002491 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002492 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002493 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002494 )
2495 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002496 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002497 _res = _PyPegen_augoperator ( p , LShift );
2498 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002499 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002500 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002501 return NULL;
2502 }
2503 goto done;
2504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002505 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002506 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002508 }
2509 { // '>>='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002510 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002511 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002512 return NULL;
2513 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002514 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002515 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002516 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002517 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002518 )
2519 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002520 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002521 _res = _PyPegen_augoperator ( p , RShift );
2522 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002523 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002524 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002525 return NULL;
2526 }
2527 goto done;
2528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002529 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002530 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002532 }
2533 { // '**='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002534 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002535 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002536 return NULL;
2537 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002538 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002539 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002540 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002541 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002542 )
2543 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002544 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002545 _res = _PyPegen_augoperator ( p , Pow );
2546 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002547 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002548 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002549 return NULL;
2550 }
2551 goto done;
2552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002553 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002554 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002556 }
2557 { // '//='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002558 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002559 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002560 return NULL;
2561 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002562 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002563 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002564 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002565 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002566 )
2567 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002568 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002569 _res = _PyPegen_augoperator ( p , FloorDiv );
2570 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002571 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002572 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002573 return NULL;
2574 }
2575 goto done;
2576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002577 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002578 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002580 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002581 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002582 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002583 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002584 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002585}
2586
2587// global_stmt: 'global' ','.NAME+
2588static stmt_ty
2589global_stmt_rule(Parser *p)
2590{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002591 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002592 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002593 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002594 return NULL;
2595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002596 stmt_ty _res = NULL;
2597 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002598 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2599 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002600 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002601 return NULL;
2602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002603 int _start_lineno = p->tokens[_mark]->lineno;
2604 UNUSED(_start_lineno); // Only used by EXTRA macro
2605 int _start_col_offset = p->tokens[_mark]->col_offset;
2606 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002607 { // 'global' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002608 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002609 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002610 return NULL;
2611 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002612 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002613 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002614 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002615 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002616 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002617 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002618 (a = _gather_25_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002619 )
2620 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002621 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 +01002622 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2623 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002624 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002625 return NULL;
2626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002627 int _end_lineno = _token->end_lineno;
2628 UNUSED(_end_lineno); // Only used by EXTRA macro
2629 int _end_col_offset = _token->end_col_offset;
2630 UNUSED(_end_col_offset); // Only used by EXTRA macro
2631 _res = _Py_Global ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2632 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002633 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002634 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002635 return NULL;
2636 }
2637 goto done;
2638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002639 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002640 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002643 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002644 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002645 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002646 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002647}
2648
2649// nonlocal_stmt: 'nonlocal' ','.NAME+
2650static stmt_ty
2651nonlocal_stmt_rule(Parser *p)
2652{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002653 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002654 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002655 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002656 return NULL;
2657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002658 stmt_ty _res = NULL;
2659 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002660 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2661 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002663 return NULL;
2664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002665 int _start_lineno = p->tokens[_mark]->lineno;
2666 UNUSED(_start_lineno); // Only used by EXTRA macro
2667 int _start_col_offset = p->tokens[_mark]->col_offset;
2668 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002669 { // 'nonlocal' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002671 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002672 return NULL;
2673 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002674 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002675 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002676 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002677 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002678 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002679 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002680 (a = _gather_27_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002681 )
2682 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002683 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 +01002684 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2685 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002686 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002687 return NULL;
2688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002689 int _end_lineno = _token->end_lineno;
2690 UNUSED(_end_lineno); // Only used by EXTRA macro
2691 int _end_col_offset = _token->end_col_offset;
2692 UNUSED(_end_col_offset); // Only used by EXTRA macro
2693 _res = _Py_Nonlocal ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2694 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002695 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002696 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002697 return NULL;
2698 }
2699 goto done;
2700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002701 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002702 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002705 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002706 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002707 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002708 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002709}
2710
2711// yield_stmt: yield_expr
2712static stmt_ty
2713yield_stmt_rule(Parser *p)
2714{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002715 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002718 return NULL;
2719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002720 stmt_ty _res = NULL;
2721 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002722 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2723 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002724 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002725 return NULL;
2726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002727 int _start_lineno = p->tokens[_mark]->lineno;
2728 UNUSED(_start_lineno); // Only used by EXTRA macro
2729 int _start_col_offset = p->tokens[_mark]->col_offset;
2730 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002731 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002732 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002733 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002734 return NULL;
2735 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002736 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002737 expr_ty y;
2738 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002739 (y = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002740 )
2741 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002742 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 +01002743 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2744 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002745 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002746 return NULL;
2747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002748 int _end_lineno = _token->end_lineno;
2749 UNUSED(_end_lineno); // Only used by EXTRA macro
2750 int _end_col_offset = _token->end_col_offset;
2751 UNUSED(_end_col_offset); // Only used by EXTRA macro
2752 _res = _Py_Expr ( y , EXTRA );
2753 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002754 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002755 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002756 return NULL;
2757 }
2758 goto done;
2759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002760 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002761 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002764 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002765 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002766 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002767 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002768}
2769
2770// assert_stmt: 'assert' expression [',' expression]
2771static stmt_ty
2772assert_stmt_rule(Parser *p)
2773{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002774 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002776 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002777 return NULL;
2778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002779 stmt_ty _res = NULL;
2780 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002781 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2782 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002783 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002784 return NULL;
2785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002786 int _start_lineno = p->tokens[_mark]->lineno;
2787 UNUSED(_start_lineno); // Only used by EXTRA macro
2788 int _start_col_offset = p->tokens[_mark]->col_offset;
2789 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002790 { // 'assert' expression [',' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002792 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002793 return NULL;
2794 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002795 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 +01002796 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002797 expr_ty a;
2798 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002799 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002800 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002801 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002802 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002803 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002804 (b = _tmp_29_rule(p), 1) // [',' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002805 )
2806 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002807 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 +01002808 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2809 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002810 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002811 return NULL;
2812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002813 int _end_lineno = _token->end_lineno;
2814 UNUSED(_end_lineno); // Only used by EXTRA macro
2815 int _end_col_offset = _token->end_col_offset;
2816 UNUSED(_end_col_offset); // Only used by EXTRA macro
2817 _res = _Py_Assert ( a , b , EXTRA );
2818 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002819 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002820 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002821 return NULL;
2822 }
2823 goto done;
2824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002825 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002826 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002829 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002830 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002831 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002832 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002833}
2834
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002835// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002836static stmt_ty
2837del_stmt_rule(Parser *p)
2838{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002839 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002840 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002841 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002842 return NULL;
2843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002844 stmt_ty _res = NULL;
2845 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002846 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2847 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002848 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002849 return NULL;
2850 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002851 int _start_lineno = p->tokens[_mark]->lineno;
2852 UNUSED(_start_lineno); // Only used by EXTRA macro
2853 int _start_col_offset = p->tokens[_mark]->col_offset;
2854 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002855 { // 'del' del_targets &(';' | NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002856 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002857 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002858 return NULL;
2859 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002860 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 +01002861 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002862 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002863 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002864 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002865 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002866 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002867 &&
2868 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002869 )
2870 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002871 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 +01002872 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2873 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002874 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002875 return NULL;
2876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002877 int _end_lineno = _token->end_lineno;
2878 UNUSED(_end_lineno); // Only used by EXTRA macro
2879 int _end_col_offset = _token->end_col_offset;
2880 UNUSED(_end_col_offset); // Only used by EXTRA macro
2881 _res = _Py_Delete ( a , EXTRA );
2882 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002883 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002885 return NULL;
2886 }
2887 goto done;
2888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002889 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002890 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03002891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2892 }
2893 { // invalid_del_stmt
2894 if (p->error_indicator) {
2895 D(p->level--);
2896 return NULL;
2897 }
2898 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2899 void *invalid_del_stmt_var;
2900 if (
2901 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2902 )
2903 {
2904 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2905 _res = invalid_del_stmt_var;
2906 goto done;
2907 }
2908 p->mark = _mark;
2909 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002912 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002913 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002914 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002915 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002916}
2917
2918// import_stmt: import_name | import_from
2919static stmt_ty
2920import_stmt_rule(Parser *p)
2921{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002922 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002923 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002924 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002925 return NULL;
2926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002927 stmt_ty _res = NULL;
2928 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002929 { // import_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002930 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002931 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002932 return NULL;
2933 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002934 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002935 stmt_ty import_name_var;
2936 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002937 (import_name_var = import_name_rule(p)) // import_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002938 )
2939 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002940 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 +01002941 _res = import_name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002942 goto done;
2943 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002944 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002945 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002947 }
2948 { // import_from
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002949 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002950 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002951 return NULL;
2952 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002953 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002954 stmt_ty import_from_var;
2955 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002956 (import_from_var = import_from_rule(p)) // import_from
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002957 )
2958 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002959 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 +01002960 _res = import_from_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002961 goto done;
2962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002963 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002964 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002966 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002967 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002968 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002969 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002970 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002971}
2972
2973// import_name: 'import' dotted_as_names
2974static stmt_ty
2975import_name_rule(Parser *p)
2976{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002977 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002978 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002979 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002980 return NULL;
2981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002982 stmt_ty _res = NULL;
2983 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002984 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2985 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002987 return NULL;
2988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002989 int _start_lineno = p->tokens[_mark]->lineno;
2990 UNUSED(_start_lineno); // Only used by EXTRA macro
2991 int _start_col_offset = p->tokens[_mark]->col_offset;
2992 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002993 { // 'import' dotted_as_names
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002995 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002996 return NULL;
2997 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002998 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 +01002999 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003000 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003001 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003002 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003003 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003004 (a = dotted_as_names_rule(p)) // dotted_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003005 )
3006 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003007 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 +01003008 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3009 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003010 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003011 return NULL;
3012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003013 int _end_lineno = _token->end_lineno;
3014 UNUSED(_end_lineno); // Only used by EXTRA macro
3015 int _end_col_offset = _token->end_col_offset;
3016 UNUSED(_end_col_offset); // Only used by EXTRA macro
3017 _res = _Py_Import ( a , EXTRA );
3018 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003019 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003020 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003021 return NULL;
3022 }
3023 goto done;
3024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003025 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003026 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003029 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003030 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003031 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003032 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003033}
3034
3035// import_from:
3036// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3037// | 'from' (('.' | '...'))+ 'import' import_from_targets
3038static stmt_ty
3039import_from_rule(Parser *p)
3040{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003041 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003042 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003043 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003044 return NULL;
3045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003046 stmt_ty _res = NULL;
3047 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003048 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3049 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003050 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003051 return NULL;
3052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003053 int _start_lineno = p->tokens[_mark]->lineno;
3054 UNUSED(_start_lineno); // Only used by EXTRA macro
3055 int _start_col_offset = p->tokens[_mark]->col_offset;
3056 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003057 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003058 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003059 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003060 return NULL;
3061 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003062 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 +01003063 Token * _keyword;
3064 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003065 asdl_seq * a;
3066 expr_ty b;
3067 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003068 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003069 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003070 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003071 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003072 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003073 (b = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003074 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003075 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003076 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003077 (c = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003078 )
3079 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003080 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 +01003081 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3082 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003083 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003084 return NULL;
3085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003086 int _end_lineno = _token->end_lineno;
3087 UNUSED(_end_lineno); // Only used by EXTRA macro
3088 int _end_col_offset = _token->end_col_offset;
3089 UNUSED(_end_col_offset); // Only used by EXTRA macro
3090 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3091 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003092 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003093 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003094 return NULL;
3095 }
3096 goto done;
3097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003098 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003099 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003101 }
3102 { // 'from' (('.' | '...'))+ 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003104 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003105 return NULL;
3106 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003107 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 +01003108 Token * _keyword;
3109 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003110 asdl_seq * a;
3111 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003112 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003113 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003114 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003115 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003116 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003117 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003118 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003119 (b = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003120 )
3121 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003122 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 +01003123 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3124 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003126 return NULL;
3127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003128 int _end_lineno = _token->end_lineno;
3129 UNUSED(_end_lineno); // Only used by EXTRA macro
3130 int _end_col_offset = _token->end_col_offset;
3131 UNUSED(_end_col_offset); // Only used by EXTRA macro
3132 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3133 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003134 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003135 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003136 return NULL;
3137 }
3138 goto done;
3139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003140 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003141 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003144 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003145 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003146 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003147 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003148}
3149
Pablo Galindo275d7e12020-05-21 22:04:54 +01003150// import_from_targets:
3151// | '(' import_from_as_names ','? ')'
3152// | import_from_as_names !','
3153// | '*'
3154// | invalid_import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003155static asdl_seq*
3156import_from_targets_rule(Parser *p)
3157{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003158 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003159 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003160 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003161 return NULL;
3162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003163 asdl_seq* _res = NULL;
3164 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003165 { // '(' import_from_as_names ','? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003166 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003167 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003168 return NULL;
3169 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003170 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 +01003171 Token * _literal;
3172 Token * _literal_1;
3173 void *_opt_var;
3174 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003175 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003176 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003177 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003178 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003179 (a = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003180 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003181 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003182 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003183 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003184 )
3185 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003186 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 +01003187 _res = a;
3188 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003189 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003190 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003191 return NULL;
3192 }
3193 goto done;
3194 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003195 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003196 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003198 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003199 { // import_from_as_names !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003200 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003201 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003202 return NULL;
3203 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003204 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 +01003205 asdl_seq* import_from_as_names_var;
3206 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003207 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindo275d7e12020-05-21 22:04:54 +01003208 &&
3209 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003210 )
3211 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003212 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 +01003213 _res = import_from_as_names_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003214 goto done;
3215 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003216 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003217 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003219 }
3220 { // '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003221 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003222 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003223 return NULL;
3224 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003225 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003226 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003227 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003228 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003229 )
3230 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003231 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003232 _res = _PyPegen_singleton_seq ( p , CHECK ( _PyPegen_alias_for_star ( p ) ) );
3233 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003234 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003235 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003236 return NULL;
3237 }
3238 goto done;
3239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003240 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003241 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003243 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003244 { // invalid_import_from_targets
3245 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003246 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +01003247 return NULL;
3248 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003249 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 +01003250 void *invalid_import_from_targets_var;
3251 if (
3252 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3253 )
3254 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003255 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 +01003256 _res = invalid_import_from_targets_var;
3257 goto done;
3258 }
3259 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003260 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003263 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003264 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003265 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003266 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003267}
3268
3269// import_from_as_names: ','.import_from_as_name+
3270static asdl_seq*
3271import_from_as_names_rule(Parser *p)
3272{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003273 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003274 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003276 return NULL;
3277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003278 asdl_seq* _res = NULL;
3279 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003280 { // ','.import_from_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003282 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003283 return NULL;
3284 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003285 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 +01003286 asdl_seq * a;
3287 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003288 (a = _gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003289 )
3290 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003291 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 +01003292 _res = a;
3293 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003294 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003295 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003296 return NULL;
3297 }
3298 goto done;
3299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003300 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003301 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003304 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003305 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003306 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003307 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003308}
3309
3310// import_from_as_name: NAME ['as' NAME]
3311static alias_ty
3312import_from_as_name_rule(Parser *p)
3313{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003314 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003315 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003317 return NULL;
3318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003319 alias_ty _res = NULL;
3320 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003321 { // NAME ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003322 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003323 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003324 return NULL;
3325 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003326 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 +01003327 expr_ty a;
3328 void *b;
3329 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003330 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003331 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003332 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003333 )
3334 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003335 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 +01003336 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3337 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003338 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003339 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003340 return NULL;
3341 }
3342 goto done;
3343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003344 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003345 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003348 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003349 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003350 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003351 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003352}
3353
3354// dotted_as_names: ','.dotted_as_name+
3355static asdl_seq*
3356dotted_as_names_rule(Parser *p)
3357{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003358 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003359 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003360 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003361 return NULL;
3362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003363 asdl_seq* _res = NULL;
3364 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003365 { // ','.dotted_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003367 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003368 return NULL;
3369 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003370 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 +01003371 asdl_seq * a;
3372 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003373 (a = _gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003374 )
3375 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003376 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 +01003377 _res = a;
3378 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003379 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003380 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003381 return NULL;
3382 }
3383 goto done;
3384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003385 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003386 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003389 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003390 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003391 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003392 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003393}
3394
3395// dotted_as_name: dotted_name ['as' NAME]
3396static alias_ty
3397dotted_as_name_rule(Parser *p)
3398{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003399 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003400 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003402 return NULL;
3403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003404 alias_ty _res = NULL;
3405 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003406 { // dotted_name ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003407 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003408 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003409 return NULL;
3410 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003411 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 +01003412 expr_ty a;
3413 void *b;
3414 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003415 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003416 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003417 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003418 )
3419 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003420 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 +01003421 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3422 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003423 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003425 return NULL;
3426 }
3427 goto done;
3428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003429 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003430 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003433 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003434 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003435 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003436 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003437}
3438
3439// Left-recursive
3440// dotted_name: dotted_name '.' NAME | NAME
3441static expr_ty dotted_name_raw(Parser *);
3442static expr_ty
3443dotted_name_rule(Parser *p)
3444{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003445 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003446 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003447 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3448 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003449 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003451 int _mark = p->mark;
3452 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003453 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003454 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003455 if (tmpvar_0) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003456 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003457 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003459 p->mark = _mark;
3460 void *_raw = dotted_name_raw(p);
3461 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003462 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003463 _resmark = p->mark;
3464 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003465 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003466 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003467 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003468 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003469}
3470static expr_ty
3471dotted_name_raw(Parser *p)
3472{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003473 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003474 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003475 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003476 return NULL;
3477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003478 expr_ty _res = NULL;
3479 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003480 { // dotted_name '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003481 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003482 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003483 return NULL;
3484 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003485 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 +01003486 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003487 expr_ty a;
3488 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003489 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003490 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003491 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003492 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003493 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003494 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003495 )
3496 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003497 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 +01003498 _res = _PyPegen_join_names_with_dot ( p , a , b );
3499 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003500 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003501 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003502 return NULL;
3503 }
3504 goto done;
3505 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003506 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003507 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003509 }
3510 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003511 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003512 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003513 return NULL;
3514 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003515 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003516 expr_ty name_var;
3517 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003518 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003519 )
3520 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003521 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003522 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003523 goto done;
3524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003525 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003526 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003529 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003530 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003531 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003532 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003533}
3534
3535// if_stmt:
3536// | 'if' named_expression ':' block elif_stmt
3537// | 'if' named_expression ':' block else_block?
3538static stmt_ty
3539if_stmt_rule(Parser *p)
3540{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003541 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003542 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003543 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003544 return NULL;
3545 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003546 stmt_ty _res = NULL;
3547 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003548 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3549 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003550 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003551 return NULL;
3552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003553 int _start_lineno = p->tokens[_mark]->lineno;
3554 UNUSED(_start_lineno); // Only used by EXTRA macro
3555 int _start_col_offset = p->tokens[_mark]->col_offset;
3556 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003557 { // 'if' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003558 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003559 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003560 return NULL;
3561 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003562 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 +01003563 Token * _keyword;
3564 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003565 expr_ty a;
3566 asdl_seq* b;
3567 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003568 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003569 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003570 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003571 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003572 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003573 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003574 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003575 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003576 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003577 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003578 )
3579 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003580 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 +01003581 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3582 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003583 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003584 return NULL;
3585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003586 int _end_lineno = _token->end_lineno;
3587 UNUSED(_end_lineno); // Only used by EXTRA macro
3588 int _end_col_offset = _token->end_col_offset;
3589 UNUSED(_end_col_offset); // Only used by EXTRA macro
3590 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3591 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003592 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003593 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003594 return NULL;
3595 }
3596 goto done;
3597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003598 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003599 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003601 }
3602 { // 'if' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003603 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003604 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003605 return NULL;
3606 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003607 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 +01003608 Token * _keyword;
3609 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003610 expr_ty a;
3611 asdl_seq* b;
3612 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003613 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003614 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003615 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003616 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003617 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003618 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003619 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003620 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003621 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003622 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003623 )
3624 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003625 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 +01003626 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3627 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003628 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003629 return NULL;
3630 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003631 int _end_lineno = _token->end_lineno;
3632 UNUSED(_end_lineno); // Only used by EXTRA macro
3633 int _end_col_offset = _token->end_col_offset;
3634 UNUSED(_end_col_offset); // Only used by EXTRA macro
3635 _res = _Py_If ( a , b , c , EXTRA );
3636 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003637 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003638 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003639 return NULL;
3640 }
3641 goto done;
3642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003643 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003644 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003647 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003648 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003649 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003650 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003651}
3652
3653// elif_stmt:
3654// | 'elif' named_expression ':' block elif_stmt
3655// | 'elif' named_expression ':' block else_block?
3656static stmt_ty
3657elif_stmt_rule(Parser *p)
3658{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003659 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003660 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003661 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003662 return NULL;
3663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003664 stmt_ty _res = NULL;
3665 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003666 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3667 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003669 return NULL;
3670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003671 int _start_lineno = p->tokens[_mark]->lineno;
3672 UNUSED(_start_lineno); // Only used by EXTRA macro
3673 int _start_col_offset = p->tokens[_mark]->col_offset;
3674 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003675 { // 'elif' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003677 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003678 return NULL;
3679 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003680 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 +01003681 Token * _keyword;
3682 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003683 expr_ty a;
3684 asdl_seq* b;
3685 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003686 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003687 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003688 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003689 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003690 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003691 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003692 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003693 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003694 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003695 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003696 )
3697 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003698 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 +01003699 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3700 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003701 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003702 return NULL;
3703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003704 int _end_lineno = _token->end_lineno;
3705 UNUSED(_end_lineno); // Only used by EXTRA macro
3706 int _end_col_offset = _token->end_col_offset;
3707 UNUSED(_end_col_offset); // Only used by EXTRA macro
3708 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3709 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003710 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003711 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003712 return NULL;
3713 }
3714 goto done;
3715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003716 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003717 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003719 }
3720 { // 'elif' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003721 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003722 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003723 return NULL;
3724 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003725 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 +01003726 Token * _keyword;
3727 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003728 expr_ty a;
3729 asdl_seq* b;
3730 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003731 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003732 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003733 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003734 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003735 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003736 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003737 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003738 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003739 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003740 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003741 )
3742 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003743 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 +01003744 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3745 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003746 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003747 return NULL;
3748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003749 int _end_lineno = _token->end_lineno;
3750 UNUSED(_end_lineno); // Only used by EXTRA macro
3751 int _end_col_offset = _token->end_col_offset;
3752 UNUSED(_end_col_offset); // Only used by EXTRA macro
3753 _res = _Py_If ( a , b , c , EXTRA );
3754 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003755 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003757 return NULL;
3758 }
3759 goto done;
3760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003761 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003762 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003765 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003766 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003767 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003768 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003769}
3770
3771// else_block: 'else' ':' block
3772static asdl_seq*
3773else_block_rule(Parser *p)
3774{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003775 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003776 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003777 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003778 return NULL;
3779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003780 asdl_seq* _res = NULL;
3781 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003782 { // 'else' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003783 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003784 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003785 return NULL;
3786 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003787 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003788 Token * _keyword;
3789 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003790 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003791 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003792 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003793 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003794 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003795 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003796 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003797 )
3798 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003799 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 +01003800 _res = b;
3801 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003802 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003803 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003804 return NULL;
3805 }
3806 goto done;
3807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003808 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003809 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003812 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003813 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003814 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003815 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003816}
3817
3818// while_stmt: 'while' named_expression ':' block else_block?
3819static stmt_ty
3820while_stmt_rule(Parser *p)
3821{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003822 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003823 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003824 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003825 return NULL;
3826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003827 stmt_ty _res = NULL;
3828 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003829 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3830 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003831 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003832 return NULL;
3833 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003834 int _start_lineno = p->tokens[_mark]->lineno;
3835 UNUSED(_start_lineno); // Only used by EXTRA macro
3836 int _start_col_offset = p->tokens[_mark]->col_offset;
3837 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003838 { // 'while' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003839 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003840 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003841 return NULL;
3842 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003843 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 +01003844 Token * _keyword;
3845 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003846 expr_ty a;
3847 asdl_seq* b;
3848 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003849 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003850 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003851 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003852 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003853 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003854 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003855 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003856 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003857 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003858 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003859 )
3860 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003861 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 +01003862 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3863 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003864 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003865 return NULL;
3866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003867 int _end_lineno = _token->end_lineno;
3868 UNUSED(_end_lineno); // Only used by EXTRA macro
3869 int _end_col_offset = _token->end_col_offset;
3870 UNUSED(_end_col_offset); // Only used by EXTRA macro
3871 _res = _Py_While ( a , b , c , EXTRA );
3872 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003873 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003874 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003875 return NULL;
3876 }
3877 goto done;
3878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003879 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003880 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003883 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003884 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003885 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003886 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003887}
3888
Guido van Rossumc001c092020-04-30 12:12:19 -07003889// for_stmt:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003890// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3891// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3892// | invalid_for_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003893static stmt_ty
3894for_stmt_rule(Parser *p)
3895{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003896 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003897 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003898 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003899 return NULL;
3900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003901 stmt_ty _res = NULL;
3902 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003903 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3904 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003905 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003906 return NULL;
3907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003908 int _start_lineno = p->tokens[_mark]->lineno;
3909 UNUSED(_start_lineno); // Only used by EXTRA macro
3910 int _start_col_offset = p->tokens[_mark]->col_offset;
3911 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003912 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003913 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003914 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003915 return NULL;
3916 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003917 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?"));
3918 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003919 Token * _keyword;
3920 Token * _keyword_1;
3921 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003922 asdl_seq* b;
3923 void *el;
3924 expr_ty ex;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003925 expr_ty t;
Guido van Rossumc001c092020-04-30 12:12:19 -07003926 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003927 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003928 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003929 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003930 (t = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003931 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003932 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003933 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003934 (_cut_var = 1)
3935 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003936 (ex = star_expressions_rule(p)) // star_expressions
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003937 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003938 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003939 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003940 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003941 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003942 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003943 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003944 (el = else_block_rule(p), 1) // else_block?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003945 )
3946 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003947 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 +01003948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3949 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003950 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003951 return NULL;
3952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003953 int _end_lineno = _token->end_lineno;
3954 UNUSED(_end_lineno); // Only used by EXTRA macro
3955 int _end_col_offset = _token->end_col_offset;
3956 UNUSED(_end_col_offset); // Only used by EXTRA macro
3957 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3958 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003959 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003960 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003961 return NULL;
3962 }
3963 goto done;
3964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003965 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003966 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
3968 if (_cut_var) {
3969 D(p->level--);
3970 return NULL;
3971 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003972 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003973 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003975 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003976 return NULL;
3977 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003978 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?"));
3979 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003980 Token * _keyword;
3981 Token * _keyword_1;
3982 Token * _literal;
Pablo Galindob796b3f2020-05-01 12:32:26 +01003983 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003984 asdl_seq* b;
3985 void *el;
3986 expr_ty ex;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003987 expr_ty t;
3988 void *tc;
3989 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003990 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003991 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003992 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003993 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003994 (t = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003995 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003996 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003997 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03003998 (_cut_var = 1)
3999 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004000 (ex = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004001 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004002 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004003 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004004 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004005 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004006 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004007 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004008 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004009 )
4010 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004011 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 +01004012 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4013 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004014 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004015 return NULL;
4016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004017 int _end_lineno = _token->end_lineno;
4018 UNUSED(_end_lineno); // Only used by EXTRA macro
4019 int _end_col_offset = _token->end_col_offset;
4020 UNUSED(_end_col_offset); // Only used by EXTRA macro
4021 _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4022 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004023 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004024 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004025 return NULL;
4026 }
4027 goto done;
4028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004029 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004030 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
4032 if (_cut_var) {
4033 D(p->level--);
4034 return NULL;
4035 }
4036 }
4037 { // invalid_for_target
4038 if (p->error_indicator) {
4039 D(p->level--);
4040 return NULL;
4041 }
4042 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4043 void *invalid_for_target_var;
4044 if (
4045 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4046 )
4047 {
4048 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4049 _res = invalid_for_target_var;
4050 goto done;
4051 }
4052 p->mark = _mark;
4053 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004056 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004057 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004058 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004059 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004060}
4061
4062// with_stmt:
Pablo Galindo99db2a12020-05-06 22:54:34 +01004063// | 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004064// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo99db2a12020-05-06 22:54:34 +01004065// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004066// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004067static stmt_ty
4068with_stmt_rule(Parser *p)
4069{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004070 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004071 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004072 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004073 return NULL;
4074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004075 stmt_ty _res = NULL;
4076 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004077 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4078 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004079 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004080 return NULL;
4081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004082 int _start_lineno = p->tokens[_mark]->lineno;
4083 UNUSED(_start_lineno); // Only used by EXTRA macro
4084 int _start_col_offset = p->tokens[_mark]->col_offset;
4085 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo99db2a12020-05-06 22:54:34 +01004086 { // 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004087 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004088 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004089 return NULL;
4090 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004091 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 +01004092 Token * _keyword;
4093 Token * _literal;
4094 Token * _literal_1;
4095 Token * _literal_2;
4096 void *_opt_var;
4097 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004098 asdl_seq * a;
4099 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004100 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004101 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004102 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004103 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004104 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004105 (a = _gather_39_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004106 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004107 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004108 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004109 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004110 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004111 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004112 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004113 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004114 )
4115 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004116 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 +01004117 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4118 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004119 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004120 return NULL;
4121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004122 int _end_lineno = _token->end_lineno;
4123 UNUSED(_end_lineno); // Only used by EXTRA macro
4124 int _end_col_offset = _token->end_col_offset;
4125 UNUSED(_end_col_offset); // Only used by EXTRA macro
4126 _res = _Py_With ( a , b , NULL , EXTRA );
4127 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004128 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004129 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004130 return NULL;
4131 }
4132 goto done;
4133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004134 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004135 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004137 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004138 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004139 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004140 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004141 return NULL;
4142 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004143 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 +01004144 Token * _keyword;
4145 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004146 asdl_seq * a;
4147 asdl_seq* b;
Guido van Rossumc001c092020-04-30 12:12:19 -07004148 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004149 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004150 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004151 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004152 (a = _gather_41_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004153 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004154 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004155 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004156 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004157 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004158 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004159 )
4160 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004161 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 +01004162 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4163 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004164 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004165 return NULL;
4166 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004167 int _end_lineno = _token->end_lineno;
4168 UNUSED(_end_lineno); // Only used by EXTRA macro
4169 int _end_col_offset = _token->end_col_offset;
4170 UNUSED(_end_col_offset); // Only used by EXTRA macro
4171 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4172 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004173 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004174 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004175 return NULL;
4176 }
4177 goto done;
4178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004179 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004180 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004182 }
Pablo Galindo99db2a12020-05-06 22:54:34 +01004183 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004185 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004186 return NULL;
4187 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004188 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 +01004189 Token * _keyword;
4190 Token * _literal;
4191 Token * _literal_1;
4192 Token * _literal_2;
4193 void *_opt_var;
4194 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004195 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004196 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004197 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004198 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004199 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004200 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004201 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004202 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004203 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004204 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004205 (a = _gather_43_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004206 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004207 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004208 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004209 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004210 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004211 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004212 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004213 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004214 )
4215 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004216 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 +01004217 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4218 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004219 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004220 return NULL;
4221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004222 int _end_lineno = _token->end_lineno;
4223 UNUSED(_end_lineno); // Only used by EXTRA macro
4224 int _end_col_offset = _token->end_col_offset;
4225 UNUSED(_end_col_offset); // Only used by EXTRA macro
4226 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
4227 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004228 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004229 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004230 return NULL;
4231 }
4232 goto done;
4233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004234 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004235 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004237 }
4238 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004239 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004240 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004241 return NULL;
4242 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004243 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 +01004244 Token * _keyword;
4245 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004246 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004247 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004248 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004249 void *tc;
4250 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004251 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004252 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004253 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004254 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004255 (a = _gather_45_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004256 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004257 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004258 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004259 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004260 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004261 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004262 )
4263 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004264 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 +01004265 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4266 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004267 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004268 return NULL;
4269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004270 int _end_lineno = _token->end_lineno;
4271 UNUSED(_end_lineno); // Only used by EXTRA macro
4272 int _end_col_offset = _token->end_col_offset;
4273 UNUSED(_end_col_offset); // Only used by EXTRA macro
4274 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4275 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004276 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004277 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004278 return NULL;
4279 }
4280 goto done;
4281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004282 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004283 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004285 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004286 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004287 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004288 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004289 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004290}
4291
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004292// with_item: expression 'as' target &(',' | ')' | ':') | invalid_with_item | expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004293static withitem_ty
4294with_item_rule(Parser *p)
4295{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004296 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004297 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004298 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004299 return NULL;
4300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004301 withitem_ty _res = NULL;
4302 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004303 { // expression 'as' target &(',' | ')' | ':')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004304 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004305 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004306 return NULL;
4307 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004308 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4309 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004310 expr_ty e;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004311 expr_ty t;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004312 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004313 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004314 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004315 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4316 &&
4317 (t = target_rule(p)) // target
4318 &&
4319 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004320 )
4321 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004322 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4323 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004324 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004325 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004326 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004327 return NULL;
4328 }
4329 goto done;
4330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004331 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004332 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' target &(',' | ')' | ':')"));
4334 }
4335 { // invalid_with_item
4336 if (p->error_indicator) {
4337 D(p->level--);
4338 return NULL;
4339 }
4340 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4341 void *invalid_with_item_var;
4342 if (
4343 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4344 )
4345 {
4346 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4347 _res = invalid_with_item_var;
4348 goto done;
4349 }
4350 p->mark = _mark;
4351 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4353 }
4354 { // expression
4355 if (p->error_indicator) {
4356 D(p->level--);
4357 return NULL;
4358 }
4359 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4360 expr_ty e;
4361 if (
4362 (e = expression_rule(p)) // expression
4363 )
4364 {
4365 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4366 _res = _Py_withitem ( e , NULL , p -> arena );
4367 if (_res == NULL && PyErr_Occurred()) {
4368 p->error_indicator = 1;
4369 D(p->level--);
4370 return NULL;
4371 }
4372 goto done;
4373 }
4374 p->mark = _mark;
4375 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004378 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004379 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004380 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004381 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004382}
4383
4384// try_stmt:
4385// | 'try' ':' block finally_block
4386// | 'try' ':' block except_block+ else_block? finally_block?
4387static stmt_ty
4388try_stmt_rule(Parser *p)
4389{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004390 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004391 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004392 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004393 return NULL;
4394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004395 stmt_ty _res = NULL;
4396 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004397 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4398 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004399 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004400 return NULL;
4401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004402 int _start_lineno = p->tokens[_mark]->lineno;
4403 UNUSED(_start_lineno); // Only used by EXTRA macro
4404 int _start_col_offset = p->tokens[_mark]->col_offset;
4405 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004406 { // 'try' ':' block finally_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004407 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004408 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004409 return NULL;
4410 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004411 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 +01004412 Token * _keyword;
4413 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004414 asdl_seq* b;
4415 asdl_seq* f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004416 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004417 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004418 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004419 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004420 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004421 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004422 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004423 (f = finally_block_rule(p)) // finally_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004424 )
4425 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004426 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 +01004427 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4428 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004429 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004430 return NULL;
4431 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004432 int _end_lineno = _token->end_lineno;
4433 UNUSED(_end_lineno); // Only used by EXTRA macro
4434 int _end_col_offset = _token->end_col_offset;
4435 UNUSED(_end_col_offset); // Only used by EXTRA macro
4436 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4437 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004438 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004439 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004440 return NULL;
4441 }
4442 goto done;
4443 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004444 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004445 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004447 }
4448 { // 'try' ':' block except_block+ else_block? finally_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004449 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004450 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004451 return NULL;
4452 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004453 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 +01004454 Token * _keyword;
4455 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004456 asdl_seq* b;
4457 void *el;
4458 asdl_seq * ex;
4459 void *f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004460 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004461 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004462 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004463 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004464 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004465 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004466 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004467 (ex = _loop1_48_rule(p)) // except_block+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004468 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004469 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004470 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004471 (f = finally_block_rule(p), 1) // finally_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004472 )
4473 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004474 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 +01004475 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4476 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004477 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004478 return NULL;
4479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004480 int _end_lineno = _token->end_lineno;
4481 UNUSED(_end_lineno); // Only used by EXTRA macro
4482 int _end_col_offset = _token->end_col_offset;
4483 UNUSED(_end_col_offset); // Only used by EXTRA macro
4484 _res = _Py_Try ( b , ex , el , f , EXTRA );
4485 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004486 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004487 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004488 return NULL;
4489 }
4490 goto done;
4491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004492 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004493 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004495 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004496 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004497 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004498 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004499 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004500}
4501
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004502// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004503static excepthandler_ty
4504except_block_rule(Parser *p)
4505{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004506 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004508 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004509 return NULL;
4510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004511 excepthandler_ty _res = NULL;
4512 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004513 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4514 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004515 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004516 return NULL;
4517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004518 int _start_lineno = p->tokens[_mark]->lineno;
4519 UNUSED(_start_lineno); // Only used by EXTRA macro
4520 int _start_col_offset = p->tokens[_mark]->col_offset;
4521 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004522 { // 'except' expression ['as' NAME] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004523 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004524 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004525 return NULL;
4526 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004527 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 +01004528 Token * _keyword;
4529 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004530 asdl_seq* b;
4531 expr_ty e;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004532 void *t;
4533 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004534 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004535 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004536 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004537 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004538 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004539 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004540 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004541 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004542 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004543 )
4544 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004545 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 +01004546 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4547 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004548 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004549 return NULL;
4550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004551 int _end_lineno = _token->end_lineno;
4552 UNUSED(_end_lineno); // Only used by EXTRA macro
4553 int _end_col_offset = _token->end_col_offset;
4554 UNUSED(_end_col_offset); // Only used by EXTRA macro
4555 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4556 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004557 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004558 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004559 return NULL;
4560 }
4561 goto done;
4562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004563 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004564 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004566 }
4567 { // 'except' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004569 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004570 return NULL;
4571 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004572 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004573 Token * _keyword;
4574 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004575 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004576 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004577 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004578 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004579 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004580 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004581 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004582 )
4583 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004584 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 +01004585 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4586 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004588 return NULL;
4589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004590 int _end_lineno = _token->end_lineno;
4591 UNUSED(_end_lineno); // Only used by EXTRA macro
4592 int _end_col_offset = _token->end_col_offset;
4593 UNUSED(_end_col_offset); // Only used by EXTRA macro
4594 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4595 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004596 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004597 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004598 return NULL;
4599 }
4600 goto done;
4601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004602 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004603 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004606 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004607 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004608 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004609 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004610}
4611
4612// finally_block: 'finally' ':' block
4613static asdl_seq*
4614finally_block_rule(Parser *p)
4615{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004616 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004618 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004619 return NULL;
4620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004621 asdl_seq* _res = NULL;
4622 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004623 { // 'finally' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004624 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004625 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004626 return NULL;
4627 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004628 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004629 Token * _keyword;
4630 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004631 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004632 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004633 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004634 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004635 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004636 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004637 (a = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004638 )
4639 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004640 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 +01004641 _res = a;
4642 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004643 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004644 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004645 return NULL;
4646 }
4647 goto done;
4648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004649 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004650 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004653 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004654 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004655 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004656 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004657}
4658
4659// return_stmt: 'return' star_expressions?
4660static stmt_ty
4661return_stmt_rule(Parser *p)
4662{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004663 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004664 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004665 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004666 return NULL;
4667 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004668 stmt_ty _res = NULL;
4669 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004670 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4671 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004672 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004673 return NULL;
4674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004675 int _start_lineno = p->tokens[_mark]->lineno;
4676 UNUSED(_start_lineno); // Only used by EXTRA macro
4677 int _start_col_offset = p->tokens[_mark]->col_offset;
4678 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004679 { // 'return' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004680 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004681 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004682 return NULL;
4683 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004684 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 +01004685 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004686 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004687 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004688 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004689 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004690 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004691 )
4692 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004693 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 +01004694 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4695 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004696 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004697 return NULL;
4698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004699 int _end_lineno = _token->end_lineno;
4700 UNUSED(_end_lineno); // Only used by EXTRA macro
4701 int _end_col_offset = _token->end_col_offset;
4702 UNUSED(_end_col_offset); // Only used by EXTRA macro
4703 _res = _Py_Return ( a , EXTRA );
4704 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004705 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004706 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004707 return NULL;
4708 }
4709 goto done;
4710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004711 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004712 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004715 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004716 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004717 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004718 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004719}
4720
4721// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4722static stmt_ty
4723raise_stmt_rule(Parser *p)
4724{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004725 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004726 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004727 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004728 return NULL;
4729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004730 stmt_ty _res = NULL;
4731 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004732 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4733 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004734 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004735 return NULL;
4736 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004737 int _start_lineno = p->tokens[_mark]->lineno;
4738 UNUSED(_start_lineno); // Only used by EXTRA macro
4739 int _start_col_offset = p->tokens[_mark]->col_offset;
4740 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004741 { // 'raise' expression ['from' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004742 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004743 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004744 return NULL;
4745 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004746 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 +01004747 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004748 expr_ty a;
4749 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004750 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004751 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004752 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004753 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004754 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004755 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004756 )
4757 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004758 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 +01004759 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4760 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004762 return NULL;
4763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004764 int _end_lineno = _token->end_lineno;
4765 UNUSED(_end_lineno); // Only used by EXTRA macro
4766 int _end_col_offset = _token->end_col_offset;
4767 UNUSED(_end_col_offset); // Only used by EXTRA macro
4768 _res = _Py_Raise ( a , b , EXTRA );
4769 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004770 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004771 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004772 return NULL;
4773 }
4774 goto done;
4775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004776 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004777 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004779 }
4780 { // 'raise'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004781 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004782 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004783 return NULL;
4784 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004785 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004786 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004787 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004788 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004789 )
4790 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004791 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004792 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4793 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004794 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004795 return NULL;
4796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004797 int _end_lineno = _token->end_lineno;
4798 UNUSED(_end_lineno); // Only used by EXTRA macro
4799 int _end_col_offset = _token->end_col_offset;
4800 UNUSED(_end_col_offset); // Only used by EXTRA macro
4801 _res = _Py_Raise ( NULL , NULL , EXTRA );
4802 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004803 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004804 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004805 return NULL;
4806 }
4807 goto done;
4808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004809 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004810 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004813 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004814 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004815 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004816 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004817}
4818
4819// function_def: decorators function_def_raw | function_def_raw
4820static stmt_ty
4821function_def_rule(Parser *p)
4822{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004823 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004824 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004825 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004826 return NULL;
4827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004828 stmt_ty _res = NULL;
4829 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004830 { // decorators function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004831 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004832 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004833 return NULL;
4834 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004835 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 +01004836 asdl_seq* d;
4837 stmt_ty f;
4838 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004839 (d = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004840 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004841 (f = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004842 )
4843 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004844 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 +01004845 _res = _PyPegen_function_def_decorators ( p , d , f );
4846 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004847 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004848 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004849 return NULL;
4850 }
4851 goto done;
4852 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004853 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004854 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004856 }
4857 { // function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004858 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004859 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004860 return NULL;
4861 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004862 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 +01004863 stmt_ty function_def_raw_var;
4864 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004865 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004866 )
4867 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004868 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 +01004869 _res = function_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004870 goto done;
4871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004872 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004873 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004876 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004877 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004878 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004879 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004880}
4881
Guido van Rossumc001c092020-04-30 12:12:19 -07004882// function_def_raw:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004883// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4884// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004885static stmt_ty
4886function_def_raw_rule(Parser *p)
4887{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004888 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004889 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004890 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004891 return NULL;
4892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004893 stmt_ty _res = NULL;
4894 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004895 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4896 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004897 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004898 return NULL;
4899 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004900 int _start_lineno = p->tokens[_mark]->lineno;
4901 UNUSED(_start_lineno); // Only used by EXTRA macro
4902 int _start_col_offset = p->tokens[_mark]->col_offset;
4903 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004904 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004905 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004906 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004907 return NULL;
4908 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004909 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 +01004910 Token * _keyword;
4911 Token * _literal;
4912 Token * _literal_1;
4913 Token * _literal_2;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004914 void *a;
4915 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004916 expr_ty n;
4917 void *params;
Guido van Rossumc001c092020-04-30 12:12:19 -07004918 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004919 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004920 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004921 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004922 (n = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004923 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004924 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004925 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004926 (params = params_rule(p), 1) // params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004927 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004928 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004929 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004930 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004931 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004932 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004933 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004934 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Guido van Rossumc001c092020-04-30 12:12:19 -07004935 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004936 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004937 )
4938 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004939 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 +01004940 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4941 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004942 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004943 return NULL;
4944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004945 int _end_lineno = _token->end_lineno;
4946 UNUSED(_end_lineno); // Only used by EXTRA macro
4947 int _end_col_offset = _token->end_col_offset;
4948 UNUSED(_end_col_offset); // Only used by EXTRA macro
4949 _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4950 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004951 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004952 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004953 return NULL;
4954 }
4955 goto done;
4956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004957 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004958 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004960 }
4961 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004962 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004963 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004964 return NULL;
4965 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004966 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 +01004967 Token * _keyword;
4968 Token * _literal;
4969 Token * _literal_1;
4970 Token * _literal_2;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004971 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004972 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004973 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004974 expr_ty n;
4975 void *params;
4976 void *tc;
4977 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004978 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004979 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004980 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004982 (n = _PyPegen_name_token(p)) // NAME
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004983 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004984 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004985 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004986 (params = params_rule(p), 1) // params?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004987 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004988 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004989 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03004990 (a = _tmp_52_rule(p), 1) // ['->' expression]
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004991 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004992 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004993 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004994 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004995 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004996 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004997 )
4998 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004999 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 +01005000 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5001 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005002 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03005003 return NULL;
5004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005005 int _end_lineno = _token->end_lineno;
5006 UNUSED(_end_lineno); // Only used by EXTRA macro
5007 int _end_col_offset = _token->end_col_offset;
5008 UNUSED(_end_col_offset); // Only used by EXTRA macro
5009 _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 ) );
5010 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005011 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005012 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005013 return NULL;
5014 }
5015 goto done;
5016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005017 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005018 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
5019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005021 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005022 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005023 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005024 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005025}
5026
Guido van Rossumc001c092020-04-30 12:12:19 -07005027// func_type_comment:
5028// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5029// | invalid_double_type_comments
5030// | TYPE_COMMENT
Pablo Galindod9552412020-05-01 16:32:09 +01005031static Token*
Guido van Rossumc001c092020-04-30 12:12:19 -07005032func_type_comment_rule(Parser *p)
5033{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005034 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005035 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005036 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005037 return NULL;
5038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005039 Token* _res = NULL;
5040 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005041 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005042 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005043 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005044 return NULL;
5045 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005046 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 +01005047 Token * newline_var;
5048 Token * t;
Guido van Rossumc001c092020-04-30 12:12:19 -07005049 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005050 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -07005051 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005052 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005053 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005054 _PyPegen_lookahead(1, _tmp_53_rule, p)
Guido van Rossumc001c092020-04-30 12:12:19 -07005055 )
5056 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005057 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 +01005058 _res = t;
5059 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005060 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005061 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005062 return NULL;
5063 }
5064 goto done;
5065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005066 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005067 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005069 }
5070 { // invalid_double_type_comments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005071 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005072 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005073 return NULL;
5074 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005075 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 -07005076 void *invalid_double_type_comments_var;
5077 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005078 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
Guido van Rossumc001c092020-04-30 12:12:19 -07005079 )
5080 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005081 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 +01005082 _res = invalid_double_type_comments_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005083 goto done;
5084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005085 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005086 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005088 }
5089 { // TYPE_COMMENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005090 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005091 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005092 return NULL;
5093 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005094 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 +01005095 Token * type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005096 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005097 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07005098 )
5099 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005100 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 +01005101 _res = type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07005102 goto done;
5103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005104 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005105 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005108 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005109 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005110 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005111 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005112}
5113
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005114// params: invalid_parameters | parameters
5115static arguments_ty
5116params_rule(Parser *p)
5117{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005118 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005119 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005120 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005121 return NULL;
5122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005123 arguments_ty _res = NULL;
5124 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005125 { // invalid_parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005126 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005127 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005128 return NULL;
5129 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005130 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005131 void *invalid_parameters_var;
5132 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005133 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005134 )
5135 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005136 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005137 _res = invalid_parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005138 goto done;
5139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005140 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005141 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005143 }
5144 { // parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005145 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005146 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005147 return NULL;
5148 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005149 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005150 arguments_ty parameters_var;
5151 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005152 (parameters_var = parameters_rule(p)) // parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005153 )
5154 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005155 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005156 _res = parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005157 goto done;
5158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005159 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005160 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005163 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005164 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005165 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005166 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005167}
5168
5169// parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -07005170// | slash_no_default param_no_default* param_with_default* star_etc?
5171// | slash_with_default param_with_default* star_etc?
5172// | param_no_default+ param_with_default* star_etc?
5173// | param_with_default+ star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005174// | star_etc
5175static arguments_ty
5176parameters_rule(Parser *p)
5177{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005178 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005179 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005180 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005181 return NULL;
5182 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005183 arguments_ty _res = NULL;
5184 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005185 { // slash_no_default param_no_default* param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005187 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005188 return NULL;
5189 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005190 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 +01005191 asdl_seq* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005192 asdl_seq * b;
5193 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005194 void *d;
5195 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005196 (a = slash_no_default_rule(p)) // slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005197 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005198 (b = _loop0_54_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005199 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005200 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005201 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005202 (d = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005203 )
5204 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005205 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 +01005206 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5207 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005208 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005209 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005210 return NULL;
5211 }
5212 goto done;
5213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005214 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005215 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5216 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 +01005217 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005218 { // slash_with_default param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005219 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005220 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005221 return NULL;
5222 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005223 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 +01005224 SlashWithDefault* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005225 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005226 void *c;
5227 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005228 (a = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005229 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005230 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005231 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005232 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005233 )
5234 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005235 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 +01005236 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5237 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005238 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005239 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005240 return NULL;
5241 }
5242 goto done;
5243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005244 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005245 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005247 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005248 { // param_no_default+ param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005249 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005250 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005251 return NULL;
5252 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005253 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 -07005254 asdl_seq * a;
5255 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005256 void *c;
5257 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005258 (a = _loop1_57_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005259 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005260 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005261 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005262 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005263 )
5264 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005265 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 +01005266 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5267 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005268 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005269 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005270 return NULL;
5271 }
5272 goto done;
5273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005274 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005275 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005277 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005278 { // param_with_default+ star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005280 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005281 return NULL;
5282 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005283 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 -07005284 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005285 void *b;
5286 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005287 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005288 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005289 (b = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005290 )
5291 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005292 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 +01005293 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5294 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005295 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005296 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005297 return NULL;
5298 }
5299 goto done;
5300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005301 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005302 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005304 }
5305 { // star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005306 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005307 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005308 return NULL;
5309 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005310 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005311 StarEtc* a;
5312 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005313 (a = star_etc_rule(p)) // star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005314 )
5315 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005316 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005317 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5318 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005319 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005320 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005321 return NULL;
5322 }
5323 goto done;
5324 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005325 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005326 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005329 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005330 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005331 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005332 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005333}
5334
Guido van Rossumc001c092020-04-30 12:12:19 -07005335// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005336static asdl_seq*
Guido van Rossumc001c092020-04-30 12:12:19 -07005337slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005338{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005339 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005340 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005341 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005342 return NULL;
5343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005344 asdl_seq* _res = NULL;
5345 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005346 { // param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005347 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005348 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005349 return NULL;
5350 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005351 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 +01005352 Token * _literal;
5353 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005354 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005355 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005356 (a = _loop1_60_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005357 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005358 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005359 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005360 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005361 )
5362 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005363 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 +01005364 _res = a;
5365 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005366 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005367 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005368 return NULL;
5369 }
5370 goto done;
5371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005372 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005373 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005375 }
5376 { // param_no_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005377 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005378 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005379 return NULL;
5380 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005381 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 +01005382 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005383 asdl_seq * a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005384 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005385 (a = _loop1_61_rule(p)) // param_no_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005386 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005387 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005388 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005389 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005390 )
5391 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005392 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 +01005393 _res = a;
5394 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005395 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005396 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005397 return NULL;
5398 }
5399 goto done;
5400 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005401 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005402 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005405 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005406 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005407 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005408 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005409}
5410
Guido van Rossumc001c092020-04-30 12:12:19 -07005411// slash_with_default:
5412// | param_no_default* param_with_default+ '/' ','
5413// | param_no_default* param_with_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005414static SlashWithDefault*
5415slash_with_default_rule(Parser *p)
5416{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005417 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005418 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005419 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005420 return NULL;
5421 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005422 SlashWithDefault* _res = NULL;
5423 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005424 { // param_no_default* param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005425 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005426 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005427 return NULL;
5428 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005429 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 +01005430 Token * _literal;
5431 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005432 asdl_seq * a;
5433 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005434 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005435 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005436 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005437 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005438 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005439 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005440 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005441 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005442 )
5443 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005444 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 +01005445 _res = _PyPegen_slash_with_default ( p , a , b );
5446 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005447 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005448 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005449 return NULL;
5450 }
5451 goto done;
5452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005453 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005454 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005456 }
5457 { // param_no_default* param_with_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005458 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005459 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005460 return NULL;
5461 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005462 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 +01005463 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005464 asdl_seq * a;
5465 asdl_seq * b;
Guido van Rossumc001c092020-04-30 12:12:19 -07005466 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005467 (a = _loop0_64_rule(p)) // param_no_default*
Guido van Rossumc001c092020-04-30 12:12:19 -07005468 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005469 (b = _loop1_65_rule(p)) // param_with_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005470 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005471 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005472 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005473 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005474 )
5475 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005476 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 +01005477 _res = _PyPegen_slash_with_default ( p , a , b );
5478 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005479 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005480 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005481 return NULL;
5482 }
5483 goto done;
5484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005485 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005486 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005489 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005490 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005491 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005492 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005493}
5494
5495// star_etc:
Guido van Rossumc001c092020-04-30 12:12:19 -07005496// | '*' param_no_default param_maybe_default* kwds?
5497// | '*' ',' param_maybe_default+ kwds?
5498// | kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005499// | invalid_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005500static StarEtc*
5501star_etc_rule(Parser *p)
5502{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005503 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005504 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005506 return NULL;
5507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005508 StarEtc* _res = NULL;
5509 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005510 { // '*' param_no_default param_maybe_default* kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005511 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005512 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005513 return NULL;
5514 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005515 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 +01005516 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005517 arg_ty a;
5518 asdl_seq * b;
5519 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005520 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005521 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005522 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005523 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005524 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005525 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005526 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005527 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005528 )
5529 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005530 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 +01005531 _res = _PyPegen_star_etc ( p , a , b , c );
5532 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005533 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005534 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005535 return NULL;
5536 }
5537 goto done;
5538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005539 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005540 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005542 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005543 { // '*' ',' param_maybe_default+ kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005545 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005546 return NULL;
5547 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005548 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 +01005549 Token * _literal;
5550 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005551 asdl_seq * b;
5552 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005553 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005554 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005555 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005556 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005557 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03005558 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005559 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005560 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005561 )
5562 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005563 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 +01005564 _res = _PyPegen_star_etc ( p , NULL , b , c );
5565 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005566 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005567 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005568 return NULL;
5569 }
5570 goto done;
5571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005572 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005573 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005575 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005576 { // kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005577 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005578 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005579 return NULL;
5580 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005581 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005582 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005583 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005584 (a = kwds_rule(p)) // kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005585 )
5586 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005587 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005588 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5589 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005590 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005591 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005592 return NULL;
5593 }
5594 goto done;
5595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005596 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005597 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005599 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005600 { // invalid_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005603 return NULL;
5604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005605 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 +03005606 void *invalid_star_etc_var;
5607 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005608 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005609 )
5610 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005611 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 +01005612 _res = invalid_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005613 goto done;
5614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005615 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005616 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005619 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005620 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005621 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005622 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005623}
5624
Guido van Rossumc001c092020-04-30 12:12:19 -07005625// kwds: '**' param_no_default
5626static arg_ty
5627kwds_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005628{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005629 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005630 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005631 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005632 return NULL;
5633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005634 arg_ty _res = NULL;
5635 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005636 { // '**' param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005637 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005638 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005639 return NULL;
5640 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005641 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005642 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005643 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005644 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005645 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07005646 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005647 (a = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -07005648 )
5649 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005650 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 +01005651 _res = a;
5652 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005653 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005654 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005655 return NULL;
5656 }
5657 goto done;
5658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005659 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005660 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005662 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005663 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005664 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005665 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005666 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005667}
5668
5669// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5670static arg_ty
5671param_no_default_rule(Parser *p)
5672{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005673 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005674 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005675 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005676 return NULL;
5677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005678 arg_ty _res = NULL;
5679 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005680 { // param ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005681 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005682 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005683 return NULL;
5684 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005685 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 +01005686 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005687 arg_ty a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005688 void *tc;
5689 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005690 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005691 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005692 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005693 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005694 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005695 )
5696 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005697 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 +01005698 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5699 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005700 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005701 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005702 return NULL;
5703 }
5704 goto done;
5705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005706 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005707 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005709 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005710 { // param TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005712 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005713 return NULL;
5714 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005715 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 -07005716 arg_ty a;
5717 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005718 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005719 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005720 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005721 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005722 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005723 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005724 )
5725 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005726 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 +01005727 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5728 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005729 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005730 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005731 return NULL;
5732 }
5733 goto done;
5734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005735 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005736 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005739 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005740 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005741 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005742 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005743}
5744
Guido van Rossumc001c092020-04-30 12:12:19 -07005745// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005746static NameDefaultPair*
Guido van Rossumc001c092020-04-30 12:12:19 -07005747param_with_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005748{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005749 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005750 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005751 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005752 return NULL;
5753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005754 NameDefaultPair* _res = NULL;
5755 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005756 { // param default ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005757 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005758 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005759 return NULL;
5760 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005761 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 +01005762 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005763 arg_ty a;
5764 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005765 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005766 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005767 (a = param_rule(p)) // param
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005768 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005769 (c = default_rule(p)) // default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005770 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005771 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005772 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005773 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005774 )
5775 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005776 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 +01005777 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5778 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005779 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005780 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005781 return NULL;
5782 }
5783 goto done;
5784 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005785 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005786 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005788 }
5789 { // param default TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005790 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005791 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005792 return NULL;
5793 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005794 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 -07005795 arg_ty a;
5796 expr_ty c;
5797 void *tc;
5798 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005799 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005800 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005801 (c = default_rule(p)) // default
Guido van Rossumc001c092020-04-30 12:12:19 -07005802 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005803 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005804 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005805 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005806 )
5807 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005808 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 +01005809 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5810 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005811 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005812 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005813 return NULL;
5814 }
5815 goto done;
5816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005817 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005818 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005821 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005822 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005823 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005824 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005825}
5826
Guido van Rossumc001c092020-04-30 12:12:19 -07005827// param_maybe_default:
5828// | param default? ',' TYPE_COMMENT?
5829// | param default? TYPE_COMMENT? &')'
5830static NameDefaultPair*
5831param_maybe_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005832{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005833 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005834 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005836 return NULL;
5837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005838 NameDefaultPair* _res = NULL;
5839 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005840 { // param default? ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005842 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005843 return NULL;
5844 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005845 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 +01005846 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005847 arg_ty a;
5848 void *c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005849 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005850 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005851 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005852 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005853 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005854 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005855 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005856 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005857 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005858 )
5859 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005860 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 +01005861 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5862 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005863 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005864 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005865 return NULL;
5866 }
5867 goto done;
5868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005869 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005870 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005872 }
5873 { // param default? TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005874 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005875 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005876 return NULL;
5877 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005878 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 -07005879 arg_ty a;
5880 void *c;
5881 void *tc;
5882 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005883 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005884 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005885 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005886 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005887 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005888 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005889 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005890 )
5891 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005892 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 +01005893 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5894 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005895 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005896 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005897 return NULL;
5898 }
5899 goto done;
5900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005901 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005902 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005905 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005906 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005907 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005908 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005909}
5910
Guido van Rossumc001c092020-04-30 12:12:19 -07005911// param: NAME annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005912static arg_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005913param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005914{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005915 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005916 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005917 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005918 return NULL;
5919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005920 arg_ty _res = NULL;
5921 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005922 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5923 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005924 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005925 return NULL;
5926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005927 int _start_lineno = p->tokens[_mark]->lineno;
5928 UNUSED(_start_lineno); // Only used by EXTRA macro
5929 int _start_col_offset = p->tokens[_mark]->col_offset;
5930 UNUSED(_start_col_offset); // Only used by EXTRA macro
Guido van Rossumc001c092020-04-30 12:12:19 -07005931 { // NAME annotation?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005932 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005933 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005934 return NULL;
5935 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005936 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005937 expr_ty a;
5938 void *b;
5939 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005940 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005941 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005942 (b = annotation_rule(p), 1) // annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005943 )
5944 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005945 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5947 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005948 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005949 return NULL;
5950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005951 int _end_lineno = _token->end_lineno;
5952 UNUSED(_end_lineno); // Only used by EXTRA macro
5953 int _end_col_offset = _token->end_col_offset;
5954 UNUSED(_end_col_offset); // Only used by EXTRA macro
5955 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5956 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005957 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005958 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005959 return NULL;
5960 }
5961 goto done;
5962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005963 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005964 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005966 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005967 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005968 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005969 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005970 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005971}
5972
Guido van Rossumc001c092020-04-30 12:12:19 -07005973// annotation: ':' expression
5974static expr_ty
5975annotation_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005976{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005977 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005978 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005979 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005980 return NULL;
5981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005982 expr_ty _res = NULL;
5983 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005984 { // ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005985 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005986 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005987 return NULL;
5988 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005989 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005990 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005991 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005992 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005993 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005994 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005995 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005996 )
5997 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005998 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005999 _res = a;
6000 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006001 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006002 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006003 return NULL;
6004 }
6005 goto done;
6006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006007 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006008 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006010 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006011 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006012 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006013 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006014 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006015}
6016
Guido van Rossumc001c092020-04-30 12:12:19 -07006017// default: '=' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006018static expr_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07006019default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006020{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006021 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006022 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006023 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006024 return NULL;
6025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006026 expr_ty _res = NULL;
6027 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07006028 { // '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006029 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006030 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006031 return NULL;
6032 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006033 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006034 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07006035 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006036 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006037 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Guido van Rossumc001c092020-04-30 12:12:19 -07006038 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006039 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006040 )
6041 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006042 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006043 _res = a;
6044 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07006045 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006046 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07006047 return NULL;
6048 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006049 goto done;
6050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006051 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006052 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006055 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006056 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006057 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006058 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006059}
6060
6061// decorators: (('@' named_expression NEWLINE))+
6062static asdl_seq*
6063decorators_rule(Parser *p)
6064{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006065 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006066 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006067 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006068 return NULL;
6069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006070 asdl_seq* _res = NULL;
6071 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006072 { // (('@' named_expression NEWLINE))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006074 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006075 return NULL;
6076 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006077 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006078 asdl_seq * a;
6079 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006080 (a = _loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006081 )
6082 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006083 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 +01006084 _res = a;
6085 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006086 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006087 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006088 return NULL;
6089 }
6090 goto done;
6091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006092 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006093 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006096 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006097 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006098 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006099 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006100}
6101
6102// class_def: decorators class_def_raw | class_def_raw
6103static stmt_ty
6104class_def_rule(Parser *p)
6105{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006106 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006107 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006108 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006109 return NULL;
6110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006111 stmt_ty _res = NULL;
6112 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006113 { // decorators class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006115 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006116 return NULL;
6117 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006118 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 +01006119 asdl_seq* a;
6120 stmt_ty b;
6121 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006122 (a = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006123 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006124 (b = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006125 )
6126 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006127 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 +01006128 _res = _PyPegen_class_def_decorators ( p , a , b );
6129 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006130 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006132 return NULL;
6133 }
6134 goto done;
6135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006136 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006137 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006139 }
6140 { // class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006141 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006142 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006143 return NULL;
6144 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006145 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 +01006146 stmt_ty class_def_raw_var;
6147 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006148 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006149 )
6150 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006151 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 +01006152 _res = class_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006153 goto done;
6154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006155 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006156 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006159 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006160 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006161 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006162 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006163}
6164
6165// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6166static stmt_ty
6167class_def_raw_rule(Parser *p)
6168{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006169 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006170 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006171 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006172 return NULL;
6173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006174 stmt_ty _res = NULL;
6175 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006176 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6177 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006178 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006179 return NULL;
6180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006181 int _start_lineno = p->tokens[_mark]->lineno;
6182 UNUSED(_start_lineno); // Only used by EXTRA macro
6183 int _start_col_offset = p->tokens[_mark]->col_offset;
6184 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006185 { // 'class' NAME ['(' arguments? ')'] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006187 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006188 return NULL;
6189 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006190 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 +01006191 Token * _keyword;
6192 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006193 expr_ty a;
6194 void *b;
6195 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006196 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006197 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006198 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006199 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006200 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006201 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006202 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006203 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006204 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006205 (c = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006206 )
6207 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006208 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 +01006209 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6210 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006211 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006212 return NULL;
6213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006214 int _end_lineno = _token->end_lineno;
6215 UNUSED(_end_lineno); // Only used by EXTRA macro
6216 int _end_col_offset = _token->end_col_offset;
6217 UNUSED(_end_col_offset); // Only used by EXTRA macro
6218 _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 );
6219 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006220 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006221 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006222 return NULL;
6223 }
6224 goto done;
6225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006226 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006227 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006230 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006231 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006232 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006233 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006234}
6235
6236// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
6237static asdl_seq*
6238block_rule(Parser *p)
6239{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006240 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006242 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006243 return NULL;
6244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006245 asdl_seq* _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006246 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6247 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006248 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006250 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006251 { // NEWLINE INDENT statements DEDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006252 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006253 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006254 return NULL;
6255 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006256 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 +01006257 asdl_seq* a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01006258 Token * dedent_var;
6259 Token * indent_var;
6260 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006261 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006262 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006263 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006264 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006265 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006266 (a = statements_rule(p)) // statements
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006267 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006268 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006269 )
6270 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006271 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 +01006272 _res = a;
6273 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006274 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006276 return NULL;
6277 }
6278 goto done;
6279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006280 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006281 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006283 }
6284 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006286 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006287 return NULL;
6288 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006289 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006290 asdl_seq* simple_stmt_var;
6291 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006292 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006293 )
6294 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006295 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006296 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006297 goto done;
6298 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006299 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006300 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6301 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006302 }
6303 { // invalid_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006304 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006305 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006306 return NULL;
6307 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006308 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006309 void *invalid_block_var;
6310 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006311 (invalid_block_var = invalid_block_rule(p)) // invalid_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006312 )
6313 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006314 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006315 _res = invalid_block_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006316 goto done;
6317 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006318 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006319 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006322 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006323 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006324 _PyPegen_insert_memo(p, _mark, block_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006325 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006326 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006327}
6328
6329// expressions_list: ','.star_expression+ ','?
6330static asdl_seq*
6331expressions_list_rule(Parser *p)
6332{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006333 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006335 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006336 return NULL;
6337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006338 asdl_seq* _res = NULL;
6339 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006340 { // ','.star_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006341 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006342 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006343 return NULL;
6344 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006345 D(fprintf(stderr, "%*c> expressions_list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006346 void *_opt_var;
6347 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006348 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006349 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006350 (a = _gather_70_rule(p)) // ','.star_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006351 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006352 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006353 )
6354 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006355 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 +01006356 _res = a;
6357 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006358 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006359 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006360 return NULL;
6361 }
6362 goto done;
6363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006364 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006365 D(fprintf(stderr, "%*c%s expressions_list[%d-%d]: %s failed!\n", p->level, ' ',
6366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006368 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006369 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006370 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006371 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006372}
6373
6374// star_expressions:
6375// | star_expression ((',' star_expression))+ ','?
6376// | star_expression ','
6377// | star_expression
6378static expr_ty
6379star_expressions_rule(Parser *p)
6380{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006381 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006382 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006383 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006384 return NULL;
6385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006386 expr_ty _res = NULL;
6387 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006388 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6389 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006390 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006391 return NULL;
6392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006393 int _start_lineno = p->tokens[_mark]->lineno;
6394 UNUSED(_start_lineno); // Only used by EXTRA macro
6395 int _start_col_offset = p->tokens[_mark]->col_offset;
6396 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006397 { // star_expression ((',' star_expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006398 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006399 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006400 return NULL;
6401 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006402 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 +01006403 void *_opt_var;
6404 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006405 expr_ty a;
6406 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006407 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006408 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006409 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006410 (b = _loop1_72_rule(p)) // ((',' star_expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006411 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006412 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006413 )
6414 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006415 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 +01006416 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6417 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006418 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006419 return NULL;
6420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006421 int _end_lineno = _token->end_lineno;
6422 UNUSED(_end_lineno); // Only used by EXTRA macro
6423 int _end_col_offset = _token->end_col_offset;
6424 UNUSED(_end_col_offset); // Only used by EXTRA macro
6425 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6426 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006427 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006428 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006429 return NULL;
6430 }
6431 goto done;
6432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006433 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006434 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006436 }
6437 { // star_expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006438 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006439 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006440 return NULL;
6441 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006442 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006443 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006444 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006445 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006446 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006447 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006448 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006449 )
6450 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006451 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 +01006452 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6453 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006454 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006455 return NULL;
6456 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006457 int _end_lineno = _token->end_lineno;
6458 UNUSED(_end_lineno); // Only used by EXTRA macro
6459 int _end_col_offset = _token->end_col_offset;
6460 UNUSED(_end_col_offset); // Only used by EXTRA macro
6461 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6462 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006463 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006464 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006465 return NULL;
6466 }
6467 goto done;
6468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006469 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006470 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006472 }
6473 { // star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006474 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006475 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006476 return NULL;
6477 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006478 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006479 expr_ty star_expression_var;
6480 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006481 (star_expression_var = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006482 )
6483 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006484 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 +01006485 _res = star_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006486 goto done;
6487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006488 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006489 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006492 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006493 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006494 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006495 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006496}
6497
6498// star_expression: '*' bitwise_or | expression
6499static expr_ty
6500star_expression_rule(Parser *p)
6501{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006502 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006505 return NULL;
6506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006507 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006508 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6509 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006510 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006512 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006513 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6514 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006515 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006516 return NULL;
6517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006518 int _start_lineno = p->tokens[_mark]->lineno;
6519 UNUSED(_start_lineno); // Only used by EXTRA macro
6520 int _start_col_offset = p->tokens[_mark]->col_offset;
6521 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006522 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006523 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006524 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006525 return NULL;
6526 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006527 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006528 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006529 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006530 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006531 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006532 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006533 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006534 )
6535 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006536 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 +01006537 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6538 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006539 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006540 return NULL;
6541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006542 int _end_lineno = _token->end_lineno;
6543 UNUSED(_end_lineno); // Only used by EXTRA macro
6544 int _end_col_offset = _token->end_col_offset;
6545 UNUSED(_end_col_offset); // Only used by EXTRA macro
6546 _res = _Py_Starred ( a , Load , EXTRA );
6547 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006548 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006549 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006550 return NULL;
6551 }
6552 goto done;
6553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006554 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006555 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006557 }
6558 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006559 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006560 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006561 return NULL;
6562 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006563 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006564 expr_ty expression_var;
6565 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006566 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006567 )
6568 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006569 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006570 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006571 goto done;
6572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006573 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006574 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006577 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006578 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006579 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006580 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006581 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006582}
6583
6584// star_named_expressions: ','.star_named_expression+ ','?
6585static asdl_seq*
6586star_named_expressions_rule(Parser *p)
6587{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006588 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006589 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006590 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006591 return NULL;
6592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006593 asdl_seq* _res = NULL;
6594 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006595 { // ','.star_named_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006596 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006597 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006598 return NULL;
6599 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006600 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 +01006601 void *_opt_var;
6602 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006603 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006604 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006605 (a = _gather_73_rule(p)) // ','.star_named_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006606 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006607 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006608 )
6609 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006610 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 +01006611 _res = a;
6612 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006613 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006614 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006615 return NULL;
6616 }
6617 goto done;
6618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006619 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006620 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006623 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006624 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006625 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006626 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006627}
6628
6629// star_named_expression: '*' bitwise_or | named_expression
6630static expr_ty
6631star_named_expression_rule(Parser *p)
6632{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006633 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006634 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006635 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006636 return NULL;
6637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006638 expr_ty _res = NULL;
6639 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006640 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6641 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006642 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006643 return NULL;
6644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006645 int _start_lineno = p->tokens[_mark]->lineno;
6646 UNUSED(_start_lineno); // Only used by EXTRA macro
6647 int _start_col_offset = p->tokens[_mark]->col_offset;
6648 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006649 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006651 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006652 return NULL;
6653 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006654 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 +01006655 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006656 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006657 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006658 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006659 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006660 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006661 )
6662 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006663 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 +01006664 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6665 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006666 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006667 return NULL;
6668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006669 int _end_lineno = _token->end_lineno;
6670 UNUSED(_end_lineno); // Only used by EXTRA macro
6671 int _end_col_offset = _token->end_col_offset;
6672 UNUSED(_end_col_offset); // Only used by EXTRA macro
6673 _res = _Py_Starred ( a , Load , EXTRA );
6674 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006675 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006676 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006677 return NULL;
6678 }
6679 goto done;
6680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006681 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006682 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006684 }
6685 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006686 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006687 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006688 return NULL;
6689 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006690 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 +01006691 expr_ty named_expression_var;
6692 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006693 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006694 )
6695 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006696 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 +01006697 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006698 goto done;
6699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006700 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006701 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006704 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006705 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006706 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006707 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006708}
6709
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006710// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006711static expr_ty
6712named_expression_rule(Parser *p)
6713{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006714 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006715 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006716 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006717 return NULL;
6718 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006719 expr_ty _res = NULL;
6720 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006721 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6722 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006723 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006724 return NULL;
6725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006726 int _start_lineno = p->tokens[_mark]->lineno;
6727 UNUSED(_start_lineno); // Only used by EXTRA macro
6728 int _start_col_offset = p->tokens[_mark]->col_offset;
6729 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006730 { // NAME ':=' ~ expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006731 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006732 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006733 return NULL;
6734 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006735 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6736 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006737 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006738 expr_ty a;
6739 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006740 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006741 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006742 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006743 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006744 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006745 (_cut_var = 1)
6746 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006747 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006748 )
6749 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006750 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 +01006751 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6752 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006753 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006754 return NULL;
6755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006756 int _end_lineno = _token->end_lineno;
6757 UNUSED(_end_lineno); // Only used by EXTRA macro
6758 int _end_col_offset = _token->end_col_offset;
6759 UNUSED(_end_col_offset); // Only used by EXTRA macro
6760 _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
6761 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006762 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006763 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006764 return NULL;
6765 }
6766 goto done;
6767 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006768 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006769 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6771 if (_cut_var) {
6772 D(p->level--);
6773 return NULL;
6774 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006775 }
6776 { // expression !':='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006777 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006778 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006779 return NULL;
6780 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006781 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006782 expr_ty expression_var;
6783 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006784 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006785 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006786 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006787 )
6788 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006789 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006790 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006791 goto done;
6792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006793 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006794 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006796 }
6797 { // invalid_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006798 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006799 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006800 return NULL;
6801 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006802 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 +01006803 void *invalid_named_expression_var;
6804 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006805 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006806 )
6807 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006808 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 +01006809 _res = invalid_named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006810 goto done;
6811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006812 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006813 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006816 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006817 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006818 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006819 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006820}
6821
6822// annotated_rhs: yield_expr | star_expressions
6823static expr_ty
6824annotated_rhs_rule(Parser *p)
6825{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006826 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006827 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006829 return NULL;
6830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006831 expr_ty _res = NULL;
6832 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006833 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006834 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006835 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006836 return NULL;
6837 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006838 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006839 expr_ty yield_expr_var;
6840 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006841 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006842 )
6843 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006844 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 +01006845 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006846 goto done;
6847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006848 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006849 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006851 }
6852 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006853 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006854 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006855 return NULL;
6856 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006857 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006858 expr_ty star_expressions_var;
6859 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006860 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006861 )
6862 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006863 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 +01006864 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006865 goto done;
6866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006867 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006868 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006871 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006872 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006873 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006874 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006875}
6876
6877// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6878static expr_ty
6879expressions_rule(Parser *p)
6880{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006881 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006882 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006883 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006884 return NULL;
6885 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006886 expr_ty _res = NULL;
6887 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006888 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6889 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006890 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006891 return NULL;
6892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006893 int _start_lineno = p->tokens[_mark]->lineno;
6894 UNUSED(_start_lineno); // Only used by EXTRA macro
6895 int _start_col_offset = p->tokens[_mark]->col_offset;
6896 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006897 { // expression ((',' expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006898 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006899 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006900 return NULL;
6901 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006902 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006903 void *_opt_var;
6904 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006905 expr_ty a;
6906 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006907 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006908 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006909 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03006910 (b = _loop1_75_rule(p)) // ((',' expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006911 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006912 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006913 )
6914 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006915 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006916 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6917 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006918 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006919 return NULL;
6920 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006921 int _end_lineno = _token->end_lineno;
6922 UNUSED(_end_lineno); // Only used by EXTRA macro
6923 int _end_col_offset = _token->end_col_offset;
6924 UNUSED(_end_col_offset); // Only used by EXTRA macro
6925 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6926 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006927 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006928 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006929 return NULL;
6930 }
6931 goto done;
6932 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006933 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006934 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006936 }
6937 { // expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006938 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006939 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006940 return NULL;
6941 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006942 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006943 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006944 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006945 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006946 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006947 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006948 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006949 )
6950 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006951 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006952 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6953 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006954 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006955 return NULL;
6956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006957 int _end_lineno = _token->end_lineno;
6958 UNUSED(_end_lineno); // Only used by EXTRA macro
6959 int _end_col_offset = _token->end_col_offset;
6960 UNUSED(_end_col_offset); // Only used by EXTRA macro
6961 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6962 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006963 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006964 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006965 return NULL;
6966 }
6967 goto done;
6968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006969 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006970 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006972 }
6973 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006974 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006975 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006976 return NULL;
6977 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006978 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006979 expr_ty expression_var;
6980 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006981 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006982 )
6983 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006984 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006985 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006986 goto done;
6987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006988 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006989 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006992 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006993 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006994 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006995 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006996}
6997
6998// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
6999static expr_ty
7000expression_rule(Parser *p)
7001{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007002 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007003 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007004 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007005 return NULL;
7006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007007 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007008 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
7009 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007010 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007012 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007013 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7014 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007015 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007016 return NULL;
7017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007018 int _start_lineno = p->tokens[_mark]->lineno;
7019 UNUSED(_start_lineno); // Only used by EXTRA macro
7020 int _start_col_offset = p->tokens[_mark]->col_offset;
7021 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007022 { // disjunction 'if' disjunction 'else' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007023 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007024 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007025 return NULL;
7026 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007027 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 +01007028 Token * _keyword;
7029 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007030 expr_ty a;
7031 expr_ty b;
7032 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007033 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007034 (a = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007035 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007036 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007037 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007038 (b = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007039 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007040 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007041 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007042 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007043 )
7044 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007045 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 +01007046 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7047 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007048 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007049 return NULL;
7050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007051 int _end_lineno = _token->end_lineno;
7052 UNUSED(_end_lineno); // Only used by EXTRA macro
7053 int _end_col_offset = _token->end_col_offset;
7054 UNUSED(_end_col_offset); // Only used by EXTRA macro
7055 _res = _Py_IfExp ( b , a , c , EXTRA );
7056 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007057 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007058 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007059 return NULL;
7060 }
7061 goto done;
7062 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007063 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007064 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007066 }
7067 { // disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007068 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007069 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007070 return NULL;
7071 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007072 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007073 expr_ty disjunction_var;
7074 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007075 (disjunction_var = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007076 )
7077 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007078 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007079 _res = disjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007080 goto done;
7081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007082 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007083 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007085 }
7086 { // lambdef
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007087 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007088 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007089 return NULL;
7090 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007091 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007092 expr_ty lambdef_var;
7093 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007094 (lambdef_var = lambdef_rule(p)) // lambdef
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007095 )
7096 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007097 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007098 _res = lambdef_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007099 goto done;
7100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007101 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007102 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007105 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007106 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007107 _PyPegen_insert_memo(p, _mark, expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007108 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007109 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007110}
7111
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007112// lambdef: 'lambda' lambda_params? ':' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007113static expr_ty
7114lambdef_rule(Parser *p)
7115{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007116 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007118 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007119 return NULL;
7120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007121 expr_ty _res = NULL;
7122 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007123 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7124 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007125 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007126 return NULL;
7127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007128 int _start_lineno = p->tokens[_mark]->lineno;
7129 UNUSED(_start_lineno); // Only used by EXTRA macro
7130 int _start_col_offset = p->tokens[_mark]->col_offset;
7131 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007132 { // 'lambda' lambda_params? ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007135 return NULL;
7136 }
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007137 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 +01007138 Token * _keyword;
7139 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007140 void *a;
7141 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007142 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007143 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007144 &&
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007145 (a = lambda_params_rule(p), 1) // lambda_params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007146 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007147 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007148 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007149 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007150 )
7151 {
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007152 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 +01007153 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7154 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007155 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007156 return NULL;
7157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007158 int _end_lineno = _token->end_lineno;
7159 UNUSED(_end_lineno); // Only used by EXTRA macro
7160 int _end_col_offset = _token->end_col_offset;
7161 UNUSED(_end_col_offset); // Only used by EXTRA macro
7162 _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
7163 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007164 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007165 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007166 return NULL;
7167 }
7168 goto done;
7169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007170 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007171 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -07007172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7173 }
7174 _res = NULL;
7175 done:
7176 D(p->level--);
7177 return _res;
7178}
7179
7180// lambda_params: invalid_lambda_parameters | lambda_parameters
7181static arguments_ty
7182lambda_params_rule(Parser *p)
7183{
7184 D(p->level++);
7185 if (p->error_indicator) {
7186 D(p->level--);
7187 return NULL;
7188 }
7189 arguments_ty _res = NULL;
7190 int _mark = p->mark;
7191 { // invalid_lambda_parameters
7192 if (p->error_indicator) {
7193 D(p->level--);
7194 return NULL;
7195 }
7196 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7197 void *invalid_lambda_parameters_var;
7198 if (
7199 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7200 )
7201 {
7202 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7203 _res = invalid_lambda_parameters_var;
7204 goto done;
7205 }
7206 p->mark = _mark;
7207 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7209 }
7210 { // lambda_parameters
7211 if (p->error_indicator) {
7212 D(p->level--);
7213 return NULL;
7214 }
7215 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7216 arguments_ty lambda_parameters_var;
7217 if (
7218 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7219 )
7220 {
7221 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7222 _res = lambda_parameters_var;
7223 goto done;
7224 }
7225 p->mark = _mark;
7226 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007229 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007230 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007231 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007232 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007233}
7234
7235// lambda_parameters:
Guido van Rossum3941d972020-05-01 09:42:03 -07007236// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7237// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7238// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7239// | lambda_param_with_default+ lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007240// | lambda_star_etc
7241static arguments_ty
7242lambda_parameters_rule(Parser *p)
7243{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007244 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007245 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007246 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007247 return NULL;
7248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007249 arguments_ty _res = NULL;
7250 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007251 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007252 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007253 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007254 return NULL;
7255 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007256 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 +01007257 asdl_seq* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007258 asdl_seq * b;
7259 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007260 void *d;
7261 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007262 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007263 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007264 (b = _loop0_76_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007265 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007266 (c = _loop0_77_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007267 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007268 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007269 )
7270 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007271 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 +01007272 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7273 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007274 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007276 return NULL;
7277 }
7278 goto done;
7279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007280 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007281 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7282 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 +01007283 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007284 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007286 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007287 return NULL;
7288 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007289 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 +01007290 SlashWithDefault* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007291 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007292 void *c;
7293 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007294 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007295 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007296 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007297 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007298 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007299 )
7300 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007301 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 +01007302 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7303 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007304 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007305 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007306 return NULL;
7307 }
7308 goto done;
7309 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007310 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007311 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7312 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 +01007313 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007314 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007315 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007316 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007317 return NULL;
7318 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007319 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 -07007320 asdl_seq * a;
7321 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007322 void *c;
7323 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007324 (a = _loop1_79_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007325 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007326 (b = _loop0_80_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007327 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007328 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007329 )
7330 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007331 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 +01007332 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7333 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007334 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007335 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007336 return NULL;
7337 }
7338 goto done;
7339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007340 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007341 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7342 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 +01007343 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007344 { // lambda_param_with_default+ lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007345 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007346 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007347 return NULL;
7348 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007349 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 -07007350 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007351 void *b;
7352 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007353 (a = _loop1_81_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007354 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007355 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007356 )
7357 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007358 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 +01007359 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7360 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007361 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007363 return NULL;
7364 }
7365 goto done;
7366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007367 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007368 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007370 }
7371 { // lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007372 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007373 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007374 return NULL;
7375 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007376 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 +01007377 StarEtc* a;
7378 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007379 (a = lambda_star_etc_rule(p)) // lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007380 )
7381 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007382 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 +01007383 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7384 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007385 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007386 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007387 return NULL;
7388 }
7389 goto done;
7390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007391 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007392 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007395 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007396 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007397 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007398 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007399}
7400
Guido van Rossum3941d972020-05-01 09:42:03 -07007401// lambda_slash_no_default:
7402// | lambda_param_no_default+ '/' ','
7403// | lambda_param_no_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007404static asdl_seq*
Guido van Rossum3941d972020-05-01 09:42:03 -07007405lambda_slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007406{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007407 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007408 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007409 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007410 return NULL;
7411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007412 asdl_seq* _res = NULL;
7413 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007414 { // lambda_param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007415 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007416 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007417 return NULL;
7418 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007419 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 +01007420 Token * _literal;
7421 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007422 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007423 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007424 (a = _loop1_82_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007425 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007426 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007427 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007428 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007429 )
7430 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007431 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 +01007432 _res = a;
7433 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007434 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007435 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007436 return NULL;
7437 }
7438 goto done;
7439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007440 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007441 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007443 }
7444 { // lambda_param_no_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007445 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007446 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007447 return NULL;
7448 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007449 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 +01007450 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007451 asdl_seq * a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007452 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007453 (a = _loop1_83_rule(p)) // lambda_param_no_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007454 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007455 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007456 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007457 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007458 )
7459 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007460 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 +01007461 _res = a;
7462 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007463 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007464 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007465 return NULL;
7466 }
7467 goto done;
7468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007469 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007470 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007473 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007474 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007475 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007476 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007477}
7478
Guido van Rossum3941d972020-05-01 09:42:03 -07007479// lambda_slash_with_default:
7480// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7481// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007482static SlashWithDefault*
7483lambda_slash_with_default_rule(Parser *p)
7484{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007485 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007486 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007487 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007488 return NULL;
7489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007490 SlashWithDefault* _res = NULL;
7491 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007492 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007493 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007494 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007495 return NULL;
7496 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007497 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 +01007498 Token * _literal;
7499 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007500 asdl_seq * a;
7501 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007502 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007503 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007504 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007505 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007506 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007507 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007508 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007509 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007510 )
7511 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007512 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 +01007513 _res = _PyPegen_slash_with_default ( p , a , b );
7514 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007515 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007516 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007517 return NULL;
7518 }
7519 goto done;
7520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007521 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007522 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007524 }
7525 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007526 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007527 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007528 return NULL;
7529 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007530 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 +01007531 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007532 asdl_seq * a;
7533 asdl_seq * b;
Guido van Rossum3941d972020-05-01 09:42:03 -07007534 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007535 (a = _loop0_86_rule(p)) // lambda_param_no_default*
Guido van Rossum3941d972020-05-01 09:42:03 -07007536 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007537 (b = _loop1_87_rule(p)) // lambda_param_with_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007538 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007539 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007540 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007541 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007542 )
7543 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007544 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 +01007545 _res = _PyPegen_slash_with_default ( p , a , b );
7546 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007547 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007548 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007549 return NULL;
7550 }
7551 goto done;
7552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007553 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007554 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007557 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007558 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007559 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007560 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007561}
7562
7563// lambda_star_etc:
Guido van Rossum3941d972020-05-01 09:42:03 -07007564// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7565// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7566// | lambda_kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007567// | invalid_lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007568static StarEtc*
7569lambda_star_etc_rule(Parser *p)
7570{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007571 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007572 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007573 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007574 return NULL;
7575 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007576 StarEtc* _res = NULL;
7577 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007578 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007580 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007581 return NULL;
7582 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007583 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 +01007584 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007585 arg_ty a;
7586 asdl_seq * b;
7587 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007588 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007589 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007590 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007591 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007592 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007593 (b = _loop0_88_rule(p)) // lambda_param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007594 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007595 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007596 )
7597 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007598 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 +01007599 _res = _PyPegen_star_etc ( p , a , b , c );
7600 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007601 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007602 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007603 return NULL;
7604 }
7605 goto done;
7606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007607 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007608 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007610 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007611 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007612 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007613 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007614 return NULL;
7615 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007616 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 +01007617 Token * _literal;
7618 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007619 asdl_seq * b;
7620 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007621 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007622 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007623 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007624 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007625 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03007626 (b = _loop1_89_rule(p)) // lambda_param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007627 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007628 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007629 )
7630 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007631 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 +01007632 _res = _PyPegen_star_etc ( p , NULL , b , c );
7633 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007634 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007635 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007636 return NULL;
7637 }
7638 goto done;
7639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007640 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007641 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007643 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007644 { // lambda_kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007645 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007646 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007647 return NULL;
7648 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007649 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 +01007650 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007651 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007652 (a = lambda_kwds_rule(p)) // lambda_kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007653 )
7654 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007655 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 +01007656 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7657 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007658 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007659 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007660 return NULL;
7661 }
7662 goto done;
7663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007664 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007665 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007667 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007668 { // invalid_lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007669 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007670 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007671 return NULL;
7672 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007673 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 +03007674 void *invalid_lambda_star_etc_var;
7675 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007676 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007677 )
7678 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007679 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 +01007680 _res = invalid_lambda_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007681 goto done;
7682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007683 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007684 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007687 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007688 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007689 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007690 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007691}
7692
Guido van Rossum3941d972020-05-01 09:42:03 -07007693// lambda_kwds: '**' lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007694static arg_ty
Guido van Rossum3941d972020-05-01 09:42:03 -07007695lambda_kwds_rule(Parser *p)
7696{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007697 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007698 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007699 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007700 return NULL;
7701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007702 arg_ty _res = NULL;
7703 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007704 { // '**' lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007706 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007707 return NULL;
7708 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007709 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 +01007710 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007711 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007712 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007713 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossum3941d972020-05-01 09:42:03 -07007714 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007715 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -07007716 )
7717 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007718 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 +01007719 _res = a;
7720 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007721 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007722 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007723 return NULL;
7724 }
7725 goto done;
7726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007727 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007728 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007731 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007732 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007733 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007734 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007735}
7736
7737// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7738static arg_ty
7739lambda_param_no_default_rule(Parser *p)
7740{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007741 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007742 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007743 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007744 return NULL;
7745 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007746 arg_ty _res = NULL;
7747 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007748 { // lambda_param ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007750 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007751 return NULL;
7752 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007753 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 +01007754 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007755 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007756 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007757 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007758 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007759 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007760 )
7761 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007762 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 +01007763 _res = a;
7764 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007765 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007766 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007767 return NULL;
7768 }
7769 goto done;
7770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007771 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007772 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007774 }
7775 { // lambda_param &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007776 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007777 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007778 return NULL;
7779 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007780 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 -07007781 arg_ty a;
7782 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007783 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007784 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007785 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007786 )
7787 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007788 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 +01007789 _res = a;
7790 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007791 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007792 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007793 return NULL;
7794 }
7795 goto done;
7796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007797 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007798 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007801 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007802 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007803 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007804 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007805}
7806
7807// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7808static NameDefaultPair*
7809lambda_param_with_default_rule(Parser *p)
7810{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007811 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007812 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007813 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007814 return NULL;
7815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007816 NameDefaultPair* _res = NULL;
7817 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007818 { // lambda_param default ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007820 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007821 return NULL;
7822 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007823 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 +01007824 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007825 arg_ty a;
7826 expr_ty c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007827 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007828 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007829 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007830 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007831 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007832 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007833 )
7834 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007835 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 +01007836 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7837 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007838 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007839 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007840 return NULL;
7841 }
7842 goto done;
7843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007844 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007845 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007847 }
7848 { // lambda_param default &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007849 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007850 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007851 return NULL;
7852 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007853 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 -07007854 arg_ty a;
7855 expr_ty c;
7856 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007857 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007858 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007859 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007860 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007861 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007862 )
7863 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007864 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 +01007865 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7866 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007867 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007868 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007869 return NULL;
7870 }
7871 goto done;
7872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007873 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007874 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007877 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007878 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007879 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007880 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007881}
7882
7883// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7884static NameDefaultPair*
7885lambda_param_maybe_default_rule(Parser *p)
7886{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007887 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007889 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007890 return NULL;
7891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007892 NameDefaultPair* _res = NULL;
7893 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007894 { // lambda_param default? ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007895 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007896 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007897 return NULL;
7898 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007899 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 +01007900 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007901 arg_ty a;
7902 void *c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007903 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007904 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007905 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007906 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007907 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007908 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007909 )
7910 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007911 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 +01007912 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7913 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007914 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007915 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007916 return NULL;
7917 }
7918 goto done;
7919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007920 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007921 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007923 }
7924 { // lambda_param default? &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007925 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007926 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007927 return NULL;
7928 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007929 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 -07007930 arg_ty a;
7931 void *c;
7932 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007933 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007934 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007935 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007936 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007937 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007938 )
7939 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007940 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 +01007941 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7942 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007943 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007944 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007945 return NULL;
7946 }
7947 goto done;
7948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007949 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007950 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007953 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007954 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007955 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007956 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007957}
7958
7959// lambda_param: NAME
7960static arg_ty
7961lambda_param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007962{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007963 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007964 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007965 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007966 return NULL;
7967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007968 arg_ty _res = NULL;
7969 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007970 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7971 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007972 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007973 return NULL;
7974 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007975 int _start_lineno = p->tokens[_mark]->lineno;
7976 UNUSED(_start_lineno); // Only used by EXTRA macro
7977 int _start_col_offset = p->tokens[_mark]->col_offset;
7978 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007979 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007980 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007981 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007982 return NULL;
7983 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007984 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007985 expr_ty a;
7986 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007987 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007988 )
7989 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007990 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007991 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7992 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007993 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007994 return NULL;
7995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007996 int _end_lineno = _token->end_lineno;
7997 UNUSED(_end_lineno); // Only used by EXTRA macro
7998 int _end_col_offset = _token->end_col_offset;
7999 UNUSED(_end_col_offset); // Only used by EXTRA macro
8000 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
8001 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008002 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008003 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008004 return NULL;
8005 }
8006 goto done;
8007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008008 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008009 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
8010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008012 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008013 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008014 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008015 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008016}
8017
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008018// disjunction: conjunction (('or' conjunction))+ | conjunction
8019static expr_ty
8020disjunction_rule(Parser *p)
8021{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008022 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008023 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008024 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008025 return NULL;
8026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008027 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008028 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
8029 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008030 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008032 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008033 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8034 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008035 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008036 return NULL;
8037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008038 int _start_lineno = p->tokens[_mark]->lineno;
8039 UNUSED(_start_lineno); // Only used by EXTRA macro
8040 int _start_col_offset = p->tokens[_mark]->col_offset;
8041 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008042 { // conjunction (('or' conjunction))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008043 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008044 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008045 return NULL;
8046 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008047 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008048 expr_ty a;
8049 asdl_seq * b;
8050 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008051 (a = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008052 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008053 (b = _loop1_90_rule(p)) // (('or' conjunction))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008054 )
8055 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008056 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 +01008057 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8058 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008059 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008060 return NULL;
8061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008062 int _end_lineno = _token->end_lineno;
8063 UNUSED(_end_lineno); // Only used by EXTRA macro
8064 int _end_col_offset = _token->end_col_offset;
8065 UNUSED(_end_col_offset); // Only used by EXTRA macro
8066 _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8067 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008068 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008069 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008070 return NULL;
8071 }
8072 goto done;
8073 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008074 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008075 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008077 }
8078 { // conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008080 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008081 return NULL;
8082 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008083 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008084 expr_ty conjunction_var;
8085 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008086 (conjunction_var = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008087 )
8088 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008089 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008090 _res = conjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008091 goto done;
8092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008093 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008094 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008097 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008098 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008099 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008100 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008101 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008102}
8103
8104// conjunction: inversion (('and' inversion))+ | inversion
8105static expr_ty
8106conjunction_rule(Parser *p)
8107{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008108 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008109 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008110 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008111 return NULL;
8112 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008113 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008114 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8115 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008116 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008118 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008119 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8120 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008122 return NULL;
8123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008124 int _start_lineno = p->tokens[_mark]->lineno;
8125 UNUSED(_start_lineno); // Only used by EXTRA macro
8126 int _start_col_offset = p->tokens[_mark]->col_offset;
8127 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008128 { // inversion (('and' inversion))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008130 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008131 return NULL;
8132 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008133 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008134 expr_ty a;
8135 asdl_seq * b;
8136 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008137 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008138 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008139 (b = _loop1_91_rule(p)) // (('and' inversion))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008140 )
8141 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008142 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 +01008143 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8144 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008145 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008146 return NULL;
8147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008148 int _end_lineno = _token->end_lineno;
8149 UNUSED(_end_lineno); // Only used by EXTRA macro
8150 int _end_col_offset = _token->end_col_offset;
8151 UNUSED(_end_col_offset); // Only used by EXTRA macro
8152 _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
8153 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008154 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008155 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008156 return NULL;
8157 }
8158 goto done;
8159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008160 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008161 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008163 }
8164 { // inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008165 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008166 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008167 return NULL;
8168 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008169 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008170 expr_ty inversion_var;
8171 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008172 (inversion_var = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008173 )
8174 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008175 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008176 _res = inversion_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008177 goto done;
8178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008179 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008180 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008182 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008183 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008184 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008185 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008186 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008187 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008188}
8189
8190// inversion: 'not' inversion | comparison
8191static expr_ty
8192inversion_rule(Parser *p)
8193{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008194 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008195 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008196 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008197 return NULL;
8198 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008199 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008200 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8201 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008202 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008204 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008205 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8206 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008207 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008208 return NULL;
8209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008210 int _start_lineno = p->tokens[_mark]->lineno;
8211 UNUSED(_start_lineno); // Only used by EXTRA macro
8212 int _start_col_offset = p->tokens[_mark]->col_offset;
8213 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008214 { // 'not' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008216 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008217 return NULL;
8218 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008219 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008220 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008221 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008222 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008223 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008224 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008225 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008226 )
8227 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008228 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008229 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8230 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008232 return NULL;
8233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008234 int _end_lineno = _token->end_lineno;
8235 UNUSED(_end_lineno); // Only used by EXTRA macro
8236 int _end_col_offset = _token->end_col_offset;
8237 UNUSED(_end_col_offset); // Only used by EXTRA macro
8238 _res = _Py_UnaryOp ( Not , a , EXTRA );
8239 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008240 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008241 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008242 return NULL;
8243 }
8244 goto done;
8245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008246 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008247 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008249 }
8250 { // comparison
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008251 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008252 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008253 return NULL;
8254 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008255 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008256 expr_ty comparison_var;
8257 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008258 (comparison_var = comparison_rule(p)) // comparison
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008259 )
8260 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008261 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008262 _res = comparison_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008263 goto done;
8264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008265 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008266 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008269 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008270 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008271 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008272 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008273 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008274}
8275
8276// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8277static expr_ty
8278comparison_rule(Parser *p)
8279{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008280 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008282 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008283 return NULL;
8284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008285 expr_ty _res = NULL;
8286 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008287 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8288 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008289 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008290 return NULL;
8291 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008292 int _start_lineno = p->tokens[_mark]->lineno;
8293 UNUSED(_start_lineno); // Only used by EXTRA macro
8294 int _start_col_offset = p->tokens[_mark]->col_offset;
8295 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008296 { // bitwise_or compare_op_bitwise_or_pair+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008297 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008298 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008299 return NULL;
8300 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008301 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 +01008302 expr_ty a;
8303 asdl_seq * b;
8304 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008305 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008306 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008307 (b = _loop1_92_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008308 )
8309 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008310 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 +01008311 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8312 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008313 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008314 return NULL;
8315 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008316 int _end_lineno = _token->end_lineno;
8317 UNUSED(_end_lineno); // Only used by EXTRA macro
8318 int _end_col_offset = _token->end_col_offset;
8319 UNUSED(_end_col_offset); // Only used by EXTRA macro
8320 _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
8321 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008322 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008323 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008324 return NULL;
8325 }
8326 goto done;
8327 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008328 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008329 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008331 }
8332 { // bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008333 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008334 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008335 return NULL;
8336 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008337 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008338 expr_ty bitwise_or_var;
8339 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008340 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008341 )
8342 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008343 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008344 _res = bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008345 goto done;
8346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008347 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008348 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008350 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008351 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008352 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008353 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008354 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008355}
8356
8357// compare_op_bitwise_or_pair:
8358// | eq_bitwise_or
8359// | noteq_bitwise_or
8360// | lte_bitwise_or
8361// | lt_bitwise_or
8362// | gte_bitwise_or
8363// | gt_bitwise_or
8364// | notin_bitwise_or
8365// | in_bitwise_or
8366// | isnot_bitwise_or
8367// | is_bitwise_or
8368static CmpopExprPair*
8369compare_op_bitwise_or_pair_rule(Parser *p)
8370{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008371 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008372 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008373 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008374 return NULL;
8375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008376 CmpopExprPair* _res = NULL;
8377 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008378 { // eq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008379 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008380 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008381 return NULL;
8382 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008383 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 +01008384 CmpopExprPair* eq_bitwise_or_var;
8385 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008386 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008387 )
8388 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008389 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 +01008390 _res = eq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008391 goto done;
8392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008393 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008394 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008396 }
8397 { // noteq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008398 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008399 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008400 return NULL;
8401 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008402 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 +01008403 CmpopExprPair* noteq_bitwise_or_var;
8404 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008405 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008406 )
8407 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008408 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 +01008409 _res = noteq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008410 goto done;
8411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008412 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008413 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008415 }
8416 { // lte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008417 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008418 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008419 return NULL;
8420 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008421 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 +01008422 CmpopExprPair* lte_bitwise_or_var;
8423 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008424 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008425 )
8426 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008427 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 +01008428 _res = lte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008429 goto done;
8430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008431 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008432 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008434 }
8435 { // lt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008436 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008437 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008438 return NULL;
8439 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008440 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 +01008441 CmpopExprPair* lt_bitwise_or_var;
8442 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008443 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008444 )
8445 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008446 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 +01008447 _res = lt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008448 goto done;
8449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008450 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008451 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008453 }
8454 { // gte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008455 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008456 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008457 return NULL;
8458 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008459 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 +01008460 CmpopExprPair* gte_bitwise_or_var;
8461 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008462 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008463 )
8464 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008465 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 +01008466 _res = gte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008467 goto done;
8468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008469 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008470 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008472 }
8473 { // gt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008474 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008475 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008476 return NULL;
8477 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008478 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 +01008479 CmpopExprPair* gt_bitwise_or_var;
8480 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008481 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008482 )
8483 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008484 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 +01008485 _res = gt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008486 goto done;
8487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008488 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008489 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008491 }
8492 { // notin_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008493 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008494 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008495 return NULL;
8496 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008497 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 +01008498 CmpopExprPair* notin_bitwise_or_var;
8499 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008500 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008501 )
8502 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008503 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 +01008504 _res = notin_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008505 goto done;
8506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008507 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008508 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008510 }
8511 { // in_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008512 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008513 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008514 return NULL;
8515 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008516 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 +01008517 CmpopExprPair* in_bitwise_or_var;
8518 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008519 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008520 )
8521 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008522 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 +01008523 _res = in_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008524 goto done;
8525 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008526 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008527 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008529 }
8530 { // isnot_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008531 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008532 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008533 return NULL;
8534 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008535 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 +01008536 CmpopExprPair* isnot_bitwise_or_var;
8537 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008538 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008539 )
8540 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008541 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 +01008542 _res = isnot_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008543 goto done;
8544 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008545 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008546 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008548 }
8549 { // is_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008550 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008551 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008552 return NULL;
8553 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008554 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 +01008555 CmpopExprPair* is_bitwise_or_var;
8556 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008557 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008558 )
8559 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008560 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 +01008561 _res = is_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008562 goto done;
8563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008564 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008565 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008568 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008569 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008570 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008571 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008572}
8573
8574// eq_bitwise_or: '==' bitwise_or
8575static CmpopExprPair*
8576eq_bitwise_or_rule(Parser *p)
8577{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008578 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008580 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008581 return NULL;
8582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008583 CmpopExprPair* _res = NULL;
8584 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008585 { // '==' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008586 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008587 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008588 return NULL;
8589 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008590 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 +01008591 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008592 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008593 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008594 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008595 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008596 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008597 )
8598 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008599 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 +01008600 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8601 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008602 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008603 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008604 return NULL;
8605 }
8606 goto done;
8607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008608 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008609 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008612 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008613 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008614 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008615 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008616}
8617
Pablo Galindo2b74c832020-04-27 18:02:07 +01008618// noteq_bitwise_or: ('!=') bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008619static CmpopExprPair*
8620noteq_bitwise_or_rule(Parser *p)
8621{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008622 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008623 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008624 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008625 return NULL;
8626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008627 CmpopExprPair* _res = NULL;
8628 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +01008629 { // ('!=') bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008630 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008631 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008632 return NULL;
8633 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008634 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 +03008635 void *_tmp_93_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008636 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008637 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008638 (_tmp_93_var = _tmp_93_rule(p)) // '!='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008639 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008640 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008641 )
8642 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008643 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 +01008644 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8645 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008646 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008647 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008648 return NULL;
8649 }
8650 goto done;
8651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008652 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008653 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008656 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008657 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008658 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008659 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008660}
8661
8662// lte_bitwise_or: '<=' bitwise_or
8663static CmpopExprPair*
8664lte_bitwise_or_rule(Parser *p)
8665{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008666 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008667 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008669 return NULL;
8670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008671 CmpopExprPair* _res = NULL;
8672 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008673 { // '<=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008674 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008675 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008676 return NULL;
8677 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008678 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 +01008679 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008680 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008681 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008682 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008683 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008684 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008685 )
8686 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008687 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 +01008688 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8689 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008690 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008691 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008692 return NULL;
8693 }
8694 goto done;
8695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008696 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008697 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008700 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008701 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008702 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008703 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008704}
8705
8706// lt_bitwise_or: '<' bitwise_or
8707static CmpopExprPair*
8708lt_bitwise_or_rule(Parser *p)
8709{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008710 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008712 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008713 return NULL;
8714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008715 CmpopExprPair* _res = NULL;
8716 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008717 { // '<' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008719 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008720 return NULL;
8721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008722 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 +01008723 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008724 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008725 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008726 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008727 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008728 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008729 )
8730 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008731 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 +01008732 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8733 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008734 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008735 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008736 return NULL;
8737 }
8738 goto done;
8739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008740 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008741 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008744 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008745 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008746 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008747 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008748}
8749
8750// gte_bitwise_or: '>=' bitwise_or
8751static CmpopExprPair*
8752gte_bitwise_or_rule(Parser *p)
8753{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008754 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008755 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008757 return NULL;
8758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008759 CmpopExprPair* _res = NULL;
8760 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008761 { // '>=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008762 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008763 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008764 return NULL;
8765 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008766 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 +01008767 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008768 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008769 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008770 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008771 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008772 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008773 )
8774 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008775 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 +01008776 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8777 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008778 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008780 return NULL;
8781 }
8782 goto done;
8783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008784 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008785 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008788 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008789 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008790 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008791 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008792}
8793
8794// gt_bitwise_or: '>' bitwise_or
8795static CmpopExprPair*
8796gt_bitwise_or_rule(Parser *p)
8797{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008798 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008801 return NULL;
8802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008803 CmpopExprPair* _res = NULL;
8804 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008805 { // '>' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008806 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008807 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008808 return NULL;
8809 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008810 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 +01008811 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008812 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008813 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008814 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008815 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008816 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008817 )
8818 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008819 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 +01008820 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8821 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008822 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008823 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008824 return NULL;
8825 }
8826 goto done;
8827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008828 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008829 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008831 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008832 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008833 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008834 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008835 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008836}
8837
8838// notin_bitwise_or: 'not' 'in' bitwise_or
8839static CmpopExprPair*
8840notin_bitwise_or_rule(Parser *p)
8841{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008842 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008843 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008844 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008845 return NULL;
8846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008847 CmpopExprPair* _res = NULL;
8848 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008849 { // 'not' 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008850 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008851 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008852 return NULL;
8853 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008854 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 +01008855 Token * _keyword;
8856 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008857 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008858 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008859 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008860 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008861 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008862 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008863 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008864 )
8865 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008866 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 +01008867 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8868 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008869 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008871 return NULL;
8872 }
8873 goto done;
8874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008875 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008876 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008879 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008880 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008881 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008882 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008883}
8884
8885// in_bitwise_or: 'in' bitwise_or
8886static CmpopExprPair*
8887in_bitwise_or_rule(Parser *p)
8888{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008889 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008890 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008891 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008892 return NULL;
8893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008894 CmpopExprPair* _res = NULL;
8895 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008896 { // 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008897 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008898 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008899 return NULL;
8900 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008901 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 +01008902 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008903 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008904 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008905 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008906 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008907 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008908 )
8909 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008910 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 +01008911 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8912 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008913 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008914 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008915 return NULL;
8916 }
8917 goto done;
8918 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008919 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008920 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008923 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008924 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008925 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008926 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008927}
8928
8929// isnot_bitwise_or: 'is' 'not' bitwise_or
8930static CmpopExprPair*
8931isnot_bitwise_or_rule(Parser *p)
8932{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008933 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008934 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008935 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008936 return NULL;
8937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008938 CmpopExprPair* _res = NULL;
8939 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008940 { // 'is' 'not' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008941 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008942 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008943 return NULL;
8944 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008945 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 +01008946 Token * _keyword;
8947 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008948 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008949 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008950 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008951 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008952 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008953 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008954 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008955 )
8956 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008957 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 +01008958 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8959 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008960 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008962 return NULL;
8963 }
8964 goto done;
8965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008966 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008967 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008970 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008971 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008972 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008973 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008974}
8975
8976// is_bitwise_or: 'is' bitwise_or
8977static CmpopExprPair*
8978is_bitwise_or_rule(Parser *p)
8979{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008980 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008981 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008983 return NULL;
8984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008985 CmpopExprPair* _res = NULL;
8986 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008987 { // 'is' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008988 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008989 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008990 return NULL;
8991 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008992 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 +01008993 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008994 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008995 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +03008996 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008997 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008998 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008999 )
9000 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009001 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 +01009002 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
9003 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009004 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009005 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009006 return NULL;
9007 }
9008 goto done;
9009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009010 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009011 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009014 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009015 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009016 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009017 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009018}
9019
9020// Left-recursive
9021// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
9022static expr_ty bitwise_or_raw(Parser *);
9023static expr_ty
9024bitwise_or_rule(Parser *p)
9025{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009026 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009027 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009028 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
9029 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009030 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009032 int _mark = p->mark;
9033 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009034 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009035 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009036 if (tmpvar_1) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009037 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009038 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009040 p->mark = _mark;
9041 void *_raw = bitwise_or_raw(p);
9042 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009043 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009044 _resmark = p->mark;
9045 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009047 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009048 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009049 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009050}
9051static expr_ty
9052bitwise_or_raw(Parser *p)
9053{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009054 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009055 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009056 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009057 return NULL;
9058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009059 expr_ty _res = NULL;
9060 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009061 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9062 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009063 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009064 return NULL;
9065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009066 int _start_lineno = p->tokens[_mark]->lineno;
9067 UNUSED(_start_lineno); // Only used by EXTRA macro
9068 int _start_col_offset = p->tokens[_mark]->col_offset;
9069 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009070 { // bitwise_or '|' bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009071 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009072 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009073 return NULL;
9074 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009075 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 +01009076 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009077 expr_ty a;
9078 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009079 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009080 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009081 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009082 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009083 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009084 (b = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009085 )
9086 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009087 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 +01009088 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9089 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009090 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009091 return NULL;
9092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009093 int _end_lineno = _token->end_lineno;
9094 UNUSED(_end_lineno); // Only used by EXTRA macro
9095 int _end_col_offset = _token->end_col_offset;
9096 UNUSED(_end_col_offset); // Only used by EXTRA macro
9097 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9098 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009099 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009100 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009101 return NULL;
9102 }
9103 goto done;
9104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009105 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009106 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009108 }
9109 { // bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009110 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009111 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009112 return NULL;
9113 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009114 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009115 expr_ty bitwise_xor_var;
9116 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009117 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009118 )
9119 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009120 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 +01009121 _res = bitwise_xor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009122 goto done;
9123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009124 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009125 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009128 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009129 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009130 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009131 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009132}
9133
9134// Left-recursive
9135// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9136static expr_ty bitwise_xor_raw(Parser *);
9137static expr_ty
9138bitwise_xor_rule(Parser *p)
9139{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009140 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009141 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009142 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9143 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009144 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009145 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009146 int _mark = p->mark;
9147 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009148 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009149 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009150 if (tmpvar_2) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009151 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009152 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009154 p->mark = _mark;
9155 void *_raw = bitwise_xor_raw(p);
9156 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009157 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009158 _resmark = p->mark;
9159 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009160 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009161 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009162 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009163 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009164}
9165static expr_ty
9166bitwise_xor_raw(Parser *p)
9167{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009168 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009169 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009170 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009171 return NULL;
9172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009173 expr_ty _res = NULL;
9174 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009175 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9176 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009177 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009178 return NULL;
9179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009180 int _start_lineno = p->tokens[_mark]->lineno;
9181 UNUSED(_start_lineno); // Only used by EXTRA macro
9182 int _start_col_offset = p->tokens[_mark]->col_offset;
9183 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009184 { // bitwise_xor '^' bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009185 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009186 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009187 return NULL;
9188 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009189 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 +01009190 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009191 expr_ty a;
9192 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009193 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009194 (a = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009195 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009196 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009197 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009198 (b = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009199 )
9200 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009201 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 +01009202 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9203 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009204 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009205 return NULL;
9206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009207 int _end_lineno = _token->end_lineno;
9208 UNUSED(_end_lineno); // Only used by EXTRA macro
9209 int _end_col_offset = _token->end_col_offset;
9210 UNUSED(_end_col_offset); // Only used by EXTRA macro
9211 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9212 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009213 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009214 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009215 return NULL;
9216 }
9217 goto done;
9218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009219 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009220 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009222 }
9223 { // bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009224 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009225 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009226 return NULL;
9227 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009228 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009229 expr_ty bitwise_and_var;
9230 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009231 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009232 )
9233 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009234 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 +01009235 _res = bitwise_and_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009236 goto done;
9237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009238 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009239 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009242 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009243 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009244 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009245 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009246}
9247
9248// Left-recursive
9249// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9250static expr_ty bitwise_and_raw(Parser *);
9251static expr_ty
9252bitwise_and_rule(Parser *p)
9253{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009254 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009255 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009256 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9257 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009258 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009260 int _mark = p->mark;
9261 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009262 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009263 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009264 if (tmpvar_3) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009265 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009266 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009268 p->mark = _mark;
9269 void *_raw = bitwise_and_raw(p);
9270 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009271 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009272 _resmark = p->mark;
9273 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009275 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009276 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009277 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009278}
9279static expr_ty
9280bitwise_and_raw(Parser *p)
9281{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009282 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009283 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009284 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009285 return NULL;
9286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009287 expr_ty _res = NULL;
9288 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009289 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009292 return NULL;
9293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009294 int _start_lineno = p->tokens[_mark]->lineno;
9295 UNUSED(_start_lineno); // Only used by EXTRA macro
9296 int _start_col_offset = p->tokens[_mark]->col_offset;
9297 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009298 { // bitwise_and '&' shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009299 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009300 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009301 return NULL;
9302 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009303 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 +01009304 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009305 expr_ty a;
9306 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009307 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009308 (a = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009309 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009310 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009311 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009312 (b = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009313 )
9314 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009315 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 +01009316 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9317 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009318 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009319 return NULL;
9320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009321 int _end_lineno = _token->end_lineno;
9322 UNUSED(_end_lineno); // Only used by EXTRA macro
9323 int _end_col_offset = _token->end_col_offset;
9324 UNUSED(_end_col_offset); // Only used by EXTRA macro
9325 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9326 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009327 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009328 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009329 return NULL;
9330 }
9331 goto done;
9332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009333 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009334 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009336 }
9337 { // shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009339 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009340 return NULL;
9341 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009342 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009343 expr_ty shift_expr_var;
9344 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009345 (shift_expr_var = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009346 )
9347 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009348 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 +01009349 _res = shift_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009350 goto done;
9351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009352 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009353 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009356 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009357 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009358 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009359 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009360}
9361
9362// Left-recursive
9363// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9364static expr_ty shift_expr_raw(Parser *);
9365static expr_ty
9366shift_expr_rule(Parser *p)
9367{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009368 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009369 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009370 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9371 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009372 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009374 int _mark = p->mark;
9375 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009376 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009377 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009378 if (tmpvar_4) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009379 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009380 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009382 p->mark = _mark;
9383 void *_raw = shift_expr_raw(p);
9384 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009385 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009386 _resmark = p->mark;
9387 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009389 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009390 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009391 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009392}
9393static expr_ty
9394shift_expr_raw(Parser *p)
9395{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009396 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009397 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009398 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009399 return NULL;
9400 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009401 expr_ty _res = NULL;
9402 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009403 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9404 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009405 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009406 return NULL;
9407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009408 int _start_lineno = p->tokens[_mark]->lineno;
9409 UNUSED(_start_lineno); // Only used by EXTRA macro
9410 int _start_col_offset = p->tokens[_mark]->col_offset;
9411 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009412 { // shift_expr '<<' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009413 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009414 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009415 return NULL;
9416 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009417 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 +01009418 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009419 expr_ty a;
9420 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009421 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009422 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009423 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009424 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009425 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009426 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009427 )
9428 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009429 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 +01009430 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9431 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009432 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009433 return NULL;
9434 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009435 int _end_lineno = _token->end_lineno;
9436 UNUSED(_end_lineno); // Only used by EXTRA macro
9437 int _end_col_offset = _token->end_col_offset;
9438 UNUSED(_end_col_offset); // Only used by EXTRA macro
9439 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9440 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009441 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009442 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009443 return NULL;
9444 }
9445 goto done;
9446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009447 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009448 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009450 }
9451 { // shift_expr '>>' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009452 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009453 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009454 return NULL;
9455 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009456 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 +01009457 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009458 expr_ty a;
9459 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009460 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009461 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009462 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009463 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009464 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009465 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009466 )
9467 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009468 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 +01009469 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9470 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009471 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009472 return NULL;
9473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009474 int _end_lineno = _token->end_lineno;
9475 UNUSED(_end_lineno); // Only used by EXTRA macro
9476 int _end_col_offset = _token->end_col_offset;
9477 UNUSED(_end_col_offset); // Only used by EXTRA macro
9478 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9479 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009480 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009481 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009482 return NULL;
9483 }
9484 goto done;
9485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009486 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009487 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009489 }
9490 { // sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009491 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009492 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009493 return NULL;
9494 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009495 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009496 expr_ty sum_var;
9497 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009498 (sum_var = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009499 )
9500 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009501 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009502 _res = sum_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009503 goto done;
9504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009505 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009506 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009508 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009509 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009510 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009511 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009512 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009513}
9514
9515// Left-recursive
9516// sum: sum '+' term | sum '-' term | term
9517static expr_ty sum_raw(Parser *);
9518static expr_ty
9519sum_rule(Parser *p)
9520{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009521 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009522 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009523 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9524 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009525 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009527 int _mark = p->mark;
9528 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009529 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009530 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009531 if (tmpvar_5) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009532 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009533 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009534 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009535 p->mark = _mark;
9536 void *_raw = sum_raw(p);
9537 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009538 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009539 _resmark = p->mark;
9540 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009542 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009543 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009544 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009545}
9546static expr_ty
9547sum_raw(Parser *p)
9548{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009549 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009550 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009551 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009552 return NULL;
9553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009554 expr_ty _res = NULL;
9555 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009556 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9557 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009558 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009559 return NULL;
9560 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009561 int _start_lineno = p->tokens[_mark]->lineno;
9562 UNUSED(_start_lineno); // Only used by EXTRA macro
9563 int _start_col_offset = p->tokens[_mark]->col_offset;
9564 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009565 { // sum '+' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009566 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009567 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009568 return NULL;
9569 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009570 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009571 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009572 expr_ty a;
9573 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009574 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009575 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009576 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009577 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009578 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009579 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009580 )
9581 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009582 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009583 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9584 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009585 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009586 return NULL;
9587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009588 int _end_lineno = _token->end_lineno;
9589 UNUSED(_end_lineno); // Only used by EXTRA macro
9590 int _end_col_offset = _token->end_col_offset;
9591 UNUSED(_end_col_offset); // Only used by EXTRA macro
9592 _res = _Py_BinOp ( a , Add , b , EXTRA );
9593 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009594 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009595 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009596 return NULL;
9597 }
9598 goto done;
9599 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009600 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009601 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009603 }
9604 { // sum '-' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009605 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009606 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009607 return NULL;
9608 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009609 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009610 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009611 expr_ty a;
9612 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009613 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009614 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009615 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009616 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009617 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009618 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009619 )
9620 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009621 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009622 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9623 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009624 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009625 return NULL;
9626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009627 int _end_lineno = _token->end_lineno;
9628 UNUSED(_end_lineno); // Only used by EXTRA macro
9629 int _end_col_offset = _token->end_col_offset;
9630 UNUSED(_end_col_offset); // Only used by EXTRA macro
9631 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9632 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009633 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009634 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009635 return NULL;
9636 }
9637 goto done;
9638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009639 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009640 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009642 }
9643 { // term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009644 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009645 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009646 return NULL;
9647 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009648 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009649 expr_ty term_var;
9650 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009651 (term_var = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009652 )
9653 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009654 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009655 _res = term_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009656 goto done;
9657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009658 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009659 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009662 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009663 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009664 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009665 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009666}
9667
9668// Left-recursive
9669// term:
9670// | term '*' factor
9671// | term '/' factor
9672// | term '//' factor
9673// | term '%' factor
9674// | term '@' factor
9675// | factor
9676static expr_ty term_raw(Parser *);
9677static expr_ty
9678term_rule(Parser *p)
9679{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009680 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009681 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009682 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9683 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009684 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009686 int _mark = p->mark;
9687 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009688 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009689 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009690 if (tmpvar_6) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009691 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009692 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009694 p->mark = _mark;
9695 void *_raw = term_raw(p);
9696 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009697 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009698 _resmark = p->mark;
9699 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009701 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009702 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009703 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009704}
9705static expr_ty
9706term_raw(Parser *p)
9707{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009708 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009709 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009711 return NULL;
9712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009713 expr_ty _res = NULL;
9714 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009715 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9716 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009718 return NULL;
9719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009720 int _start_lineno = p->tokens[_mark]->lineno;
9721 UNUSED(_start_lineno); // Only used by EXTRA macro
9722 int _start_col_offset = p->tokens[_mark]->col_offset;
9723 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009724 { // term '*' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009725 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009726 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009727 return NULL;
9728 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009729 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009730 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009731 expr_ty a;
9732 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009733 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009734 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009735 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009736 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009737 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009738 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009739 )
9740 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009741 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009742 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9743 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009744 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009745 return NULL;
9746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009747 int _end_lineno = _token->end_lineno;
9748 UNUSED(_end_lineno); // Only used by EXTRA macro
9749 int _end_col_offset = _token->end_col_offset;
9750 UNUSED(_end_col_offset); // Only used by EXTRA macro
9751 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9752 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009753 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009754 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009755 return NULL;
9756 }
9757 goto done;
9758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009759 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009760 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009762 }
9763 { // term '/' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009764 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009765 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009766 return NULL;
9767 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009768 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009769 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009770 expr_ty a;
9771 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009772 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009773 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009774 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009775 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009776 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009777 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009778 )
9779 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009780 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009781 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9782 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009783 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009784 return NULL;
9785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009786 int _end_lineno = _token->end_lineno;
9787 UNUSED(_end_lineno); // Only used by EXTRA macro
9788 int _end_col_offset = _token->end_col_offset;
9789 UNUSED(_end_col_offset); // Only used by EXTRA macro
9790 _res = _Py_BinOp ( a , Div , b , EXTRA );
9791 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009792 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009793 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009794 return NULL;
9795 }
9796 goto done;
9797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009798 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009799 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009801 }
9802 { // term '//' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009803 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009804 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009805 return NULL;
9806 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009807 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009808 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009809 expr_ty a;
9810 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009811 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009812 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009813 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009814 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009815 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009816 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009817 )
9818 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009819 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009820 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9821 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009822 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009823 return NULL;
9824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009825 int _end_lineno = _token->end_lineno;
9826 UNUSED(_end_lineno); // Only used by EXTRA macro
9827 int _end_col_offset = _token->end_col_offset;
9828 UNUSED(_end_col_offset); // Only used by EXTRA macro
9829 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9830 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009831 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009832 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009833 return NULL;
9834 }
9835 goto done;
9836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009837 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009838 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009840 }
9841 { // term '%' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009842 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009843 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009844 return NULL;
9845 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009846 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009847 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009848 expr_ty a;
9849 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009850 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009851 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009852 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009853 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009854 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009855 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009856 )
9857 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009858 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009859 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9860 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009861 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009862 return NULL;
9863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009864 int _end_lineno = _token->end_lineno;
9865 UNUSED(_end_lineno); // Only used by EXTRA macro
9866 int _end_col_offset = _token->end_col_offset;
9867 UNUSED(_end_col_offset); // Only used by EXTRA macro
9868 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9869 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009870 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009871 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009872 return NULL;
9873 }
9874 goto done;
9875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009876 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009877 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009879 }
9880 { // term '@' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009881 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009882 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009883 return NULL;
9884 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009885 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009886 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009887 expr_ty a;
9888 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009889 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009890 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009891 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009892 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009893 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009894 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009895 )
9896 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009897 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009898 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9899 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009901 return NULL;
9902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009903 int _end_lineno = _token->end_lineno;
9904 UNUSED(_end_lineno); // Only used by EXTRA macro
9905 int _end_col_offset = _token->end_col_offset;
9906 UNUSED(_end_col_offset); // Only used by EXTRA macro
9907 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
9908 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009909 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009910 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009911 return NULL;
9912 }
9913 goto done;
9914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009915 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009916 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009918 }
9919 { // factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009920 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009921 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009922 return NULL;
9923 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009924 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009925 expr_ty factor_var;
9926 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009927 (factor_var = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009928 )
9929 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009930 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009931 _res = factor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009932 goto done;
9933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009934 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009935 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009938 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009939 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009940 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009941 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009942}
9943
9944// factor: '+' factor | '-' factor | '~' factor | power
9945static expr_ty
9946factor_rule(Parser *p)
9947{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009948 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009949 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009950 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009951 return NULL;
9952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009953 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009954 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9955 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009956 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009958 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009959 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9960 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009962 return NULL;
9963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009964 int _start_lineno = p->tokens[_mark]->lineno;
9965 UNUSED(_start_lineno); // Only used by EXTRA macro
9966 int _start_col_offset = p->tokens[_mark]->col_offset;
9967 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009968 { // '+' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009969 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009970 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009971 return NULL;
9972 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009973 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009974 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009975 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009976 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009977 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009978 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009979 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009980 )
9981 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009982 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009983 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9984 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009985 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009986 return NULL;
9987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009988 int _end_lineno = _token->end_lineno;
9989 UNUSED(_end_lineno); // Only used by EXTRA macro
9990 int _end_col_offset = _token->end_col_offset;
9991 UNUSED(_end_col_offset); // Only used by EXTRA macro
9992 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9993 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009994 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009995 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009996 return NULL;
9997 }
9998 goto done;
9999 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010000 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010001 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010003 }
10004 { // '-' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010005 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010006 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010007 return NULL;
10008 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010009 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010010 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010011 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010012 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010013 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010014 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010015 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010016 )
10017 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010018 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010019 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10020 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010021 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010022 return NULL;
10023 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010024 int _end_lineno = _token->end_lineno;
10025 UNUSED(_end_lineno); // Only used by EXTRA macro
10026 int _end_col_offset = _token->end_col_offset;
10027 UNUSED(_end_col_offset); // Only used by EXTRA macro
10028 _res = _Py_UnaryOp ( USub , a , EXTRA );
10029 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010030 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010032 return NULL;
10033 }
10034 goto done;
10035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010036 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010037 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010039 }
10040 { // '~' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010041 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010042 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010043 return NULL;
10044 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010045 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010046 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010047 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010048 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010049 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010050 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010051 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010052 )
10053 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010054 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010055 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10056 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010057 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010058 return NULL;
10059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010060 int _end_lineno = _token->end_lineno;
10061 UNUSED(_end_lineno); // Only used by EXTRA macro
10062 int _end_col_offset = _token->end_col_offset;
10063 UNUSED(_end_col_offset); // Only used by EXTRA macro
10064 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10065 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010066 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010067 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010068 return NULL;
10069 }
10070 goto done;
10071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010072 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010073 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010075 }
10076 { // power
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010077 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010078 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010079 return NULL;
10080 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010081 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010082 expr_ty power_var;
10083 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010084 (power_var = power_rule(p)) // power
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010085 )
10086 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010087 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010088 _res = power_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010089 goto done;
10090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010091 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010092 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010095 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010096 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010097 _PyPegen_insert_memo(p, _mark, factor_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010098 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010099 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010100}
10101
10102// power: await_primary '**' factor | await_primary
10103static expr_ty
10104power_rule(Parser *p)
10105{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010106 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010107 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010108 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010109 return NULL;
10110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010111 expr_ty _res = NULL;
10112 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010113 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10114 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010115 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010116 return NULL;
10117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010118 int _start_lineno = p->tokens[_mark]->lineno;
10119 UNUSED(_start_lineno); // Only used by EXTRA macro
10120 int _start_col_offset = p->tokens[_mark]->col_offset;
10121 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010122 { // await_primary '**' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010124 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010125 return NULL;
10126 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010127 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010128 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010129 expr_ty a;
10130 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010131 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010132 (a = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010133 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010134 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010135 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010136 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010137 )
10138 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010139 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 +010010140 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10141 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010142 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010143 return NULL;
10144 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010145 int _end_lineno = _token->end_lineno;
10146 UNUSED(_end_lineno); // Only used by EXTRA macro
10147 int _end_col_offset = _token->end_col_offset;
10148 UNUSED(_end_col_offset); // Only used by EXTRA macro
10149 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10150 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010151 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010152 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010153 return NULL;
10154 }
10155 goto done;
10156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010157 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010158 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010160 }
10161 { // await_primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010162 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010163 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010164 return NULL;
10165 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010166 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010167 expr_ty await_primary_var;
10168 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010169 (await_primary_var = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010170 )
10171 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010172 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010173 _res = await_primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010174 goto done;
10175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010176 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010177 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010180 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010181 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010182 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010183 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010184}
10185
10186// await_primary: AWAIT primary | primary
10187static expr_ty
10188await_primary_rule(Parser *p)
10189{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010190 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010192 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010193 return NULL;
10194 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010195 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010196 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10197 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010198 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010200 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010201 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10202 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010204 return NULL;
10205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010206 int _start_lineno = p->tokens[_mark]->lineno;
10207 UNUSED(_start_lineno); // Only used by EXTRA macro
10208 int _start_col_offset = p->tokens[_mark]->col_offset;
10209 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010210 { // AWAIT primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010212 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010213 return NULL;
10214 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010215 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010216 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010010217 Token * await_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010218 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010219 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010220 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010221 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010222 )
10223 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010224 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 +010010225 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10226 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010227 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010228 return NULL;
10229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010230 int _end_lineno = _token->end_lineno;
10231 UNUSED(_end_lineno); // Only used by EXTRA macro
10232 int _end_col_offset = _token->end_col_offset;
10233 UNUSED(_end_col_offset); // Only used by EXTRA macro
10234 _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
10235 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010236 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010237 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010238 return NULL;
10239 }
10240 goto done;
10241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010242 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010243 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010245 }
10246 { // primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010247 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010248 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010249 return NULL;
10250 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010251 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010252 expr_ty primary_var;
10253 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010254 (primary_var = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010255 )
10256 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010257 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010258 _res = primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010259 goto done;
10260 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010261 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010262 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010265 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010266 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010267 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010268 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010269 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010270}
10271
10272// Left-recursive
10273// primary:
10274// | primary '.' NAME
10275// | primary genexp
10276// | primary '(' arguments? ')'
10277// | primary '[' slices ']'
10278// | atom
10279static expr_ty primary_raw(Parser *);
10280static expr_ty
10281primary_rule(Parser *p)
10282{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010283 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010284 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010285 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10286 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010287 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010289 int _mark = p->mark;
10290 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010291 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010292 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010293 if (tmpvar_7) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010294 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010295 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010296 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010297 p->mark = _mark;
10298 void *_raw = primary_raw(p);
10299 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010300 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010301 _resmark = p->mark;
10302 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010304 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010305 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010306 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010307}
10308static expr_ty
10309primary_raw(Parser *p)
10310{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010311 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010312 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010313 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010314 return NULL;
10315 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010316 expr_ty _res = NULL;
10317 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010318 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10319 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010320 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010321 return NULL;
10322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010323 int _start_lineno = p->tokens[_mark]->lineno;
10324 UNUSED(_start_lineno); // Only used by EXTRA macro
10325 int _start_col_offset = p->tokens[_mark]->col_offset;
10326 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010327 { // primary '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010329 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010330 return NULL;
10331 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010332 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010333 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010334 expr_ty a;
10335 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010336 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010337 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010338 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010339 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010340 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010341 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010342 )
10343 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010344 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010345 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10346 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010347 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010348 return NULL;
10349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010350 int _end_lineno = _token->end_lineno;
10351 UNUSED(_end_lineno); // Only used by EXTRA macro
10352 int _end_col_offset = _token->end_col_offset;
10353 UNUSED(_end_col_offset); // Only used by EXTRA macro
10354 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10355 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010356 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010357 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010358 return NULL;
10359 }
10360 goto done;
10361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010362 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010363 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010365 }
10366 { // primary genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010367 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010368 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010369 return NULL;
10370 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010371 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010372 expr_ty a;
10373 expr_ty b;
10374 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010375 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010376 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010377 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010378 )
10379 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010380 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010381 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10382 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010383 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010384 return NULL;
10385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010386 int _end_lineno = _token->end_lineno;
10387 UNUSED(_end_lineno); // Only used by EXTRA macro
10388 int _end_col_offset = _token->end_col_offset;
10389 UNUSED(_end_col_offset); // Only used by EXTRA macro
10390 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
10391 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010392 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010393 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010394 return NULL;
10395 }
10396 goto done;
10397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010398 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010399 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010401 }
10402 { // primary '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010405 return NULL;
10406 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010407 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010408 Token * _literal;
10409 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010410 expr_ty a;
10411 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010412 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010413 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010414 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010415 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010416 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010417 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010418 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010419 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010420 )
10421 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010422 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010423 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10424 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010425 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010426 return NULL;
10427 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010428 int _end_lineno = _token->end_lineno;
10429 UNUSED(_end_lineno); // Only used by EXTRA macro
10430 int _end_col_offset = _token->end_col_offset;
10431 UNUSED(_end_col_offset); // Only used by EXTRA macro
10432 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10433 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010434 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010436 return NULL;
10437 }
10438 goto done;
10439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010440 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010441 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010443 }
10444 { // primary '[' slices ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010445 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010446 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010447 return NULL;
10448 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010449 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010450 Token * _literal;
10451 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010452 expr_ty a;
10453 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010454 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010455 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010456 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010457 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010458 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010459 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010460 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010461 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010462 )
10463 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010464 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010465 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10466 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010467 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010468 return NULL;
10469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010470 int _end_lineno = _token->end_lineno;
10471 UNUSED(_end_lineno); // Only used by EXTRA macro
10472 int _end_col_offset = _token->end_col_offset;
10473 UNUSED(_end_col_offset); // Only used by EXTRA macro
10474 _res = _Py_Subscript ( a , b , Load , EXTRA );
10475 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010476 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010477 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010478 return NULL;
10479 }
10480 goto done;
10481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010482 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010483 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010485 }
10486 { // atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010488 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010489 return NULL;
10490 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010491 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010492 expr_ty atom_var;
10493 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010494 (atom_var = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010495 )
10496 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010497 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010498 _res = atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010499 goto done;
10500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010501 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010502 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010505 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010506 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010507 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010508 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010509}
10510
10511// slices: slice !',' | ','.slice+ ','?
10512static expr_ty
10513slices_rule(Parser *p)
10514{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010515 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010516 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010517 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010518 return NULL;
10519 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010520 expr_ty _res = NULL;
10521 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010522 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10523 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010524 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010525 return NULL;
10526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010527 int _start_lineno = p->tokens[_mark]->lineno;
10528 UNUSED(_start_lineno); // Only used by EXTRA macro
10529 int _start_col_offset = p->tokens[_mark]->col_offset;
10530 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010531 { // slice !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010532 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010533 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010534 return NULL;
10535 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010536 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010537 expr_ty a;
10538 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010539 (a = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010540 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010541 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010542 )
10543 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010544 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010545 _res = a;
10546 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010547 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010548 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010549 return NULL;
10550 }
10551 goto done;
10552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010553 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010554 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010556 }
10557 { // ','.slice+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010558 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010559 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010560 return NULL;
10561 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010562 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010563 void *_opt_var;
10564 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010565 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010566 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010567 (a = _gather_94_rule(p)) // ','.slice+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010568 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010569 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010570 )
10571 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010572 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010573 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10574 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010575 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010576 return NULL;
10577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010578 int _end_lineno = _token->end_lineno;
10579 UNUSED(_end_lineno); // Only used by EXTRA macro
10580 int _end_col_offset = _token->end_col_offset;
10581 UNUSED(_end_col_offset); // Only used by EXTRA macro
10582 _res = _Py_Tuple ( a , Load , EXTRA );
10583 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010584 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010585 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010586 return NULL;
10587 }
10588 goto done;
10589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010590 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010591 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010594 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010595 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010596 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010597 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010598}
10599
10600// slice: expression? ':' expression? [':' expression?] | expression
10601static expr_ty
10602slice_rule(Parser *p)
10603{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010604 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010605 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010606 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010607 return NULL;
10608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010609 expr_ty _res = NULL;
10610 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010611 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10612 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010613 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010614 return NULL;
10615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010616 int _start_lineno = p->tokens[_mark]->lineno;
10617 UNUSED(_start_lineno); // Only used by EXTRA macro
10618 int _start_col_offset = p->tokens[_mark]->col_offset;
10619 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010620 { // expression? ':' expression? [':' expression?]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010621 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010622 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010623 return NULL;
10624 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010625 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010626 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010627 void *a;
10628 void *b;
10629 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010630 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010631 (a = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010632 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010633 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010634 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010635 (b = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010636 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010637 (c = _tmp_96_rule(p), 1) // [':' expression?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010638 )
10639 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010640 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 +010010641 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10642 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010643 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010644 return NULL;
10645 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010646 int _end_lineno = _token->end_lineno;
10647 UNUSED(_end_lineno); // Only used by EXTRA macro
10648 int _end_col_offset = _token->end_col_offset;
10649 UNUSED(_end_col_offset); // Only used by EXTRA macro
10650 _res = _Py_Slice ( a , b , c , EXTRA );
10651 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010652 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010653 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010654 return NULL;
10655 }
10656 goto done;
10657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010658 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010659 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010661 }
10662 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010663 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010664 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010665 return NULL;
10666 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010667 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010668 expr_ty a;
10669 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010670 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010671 )
10672 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010673 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010674 _res = a;
10675 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010676 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010677 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010678 return NULL;
10679 }
10680 goto done;
10681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010682 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010683 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010686 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010687 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010688 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010689 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010690}
10691
10692// atom:
10693// | NAME
10694// | 'True'
10695// | 'False'
10696// | 'None'
Pablo Galindo37824972020-06-11 19:29:13 +010010697// | '__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010698// | &STRING strings
10699// | NUMBER
10700// | &'(' (tuple | group | genexp)
10701// | &'[' (list | listcomp)
10702// | &'{' (dict | set | dictcomp | setcomp)
10703// | '...'
10704static expr_ty
10705atom_rule(Parser *p)
10706{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010707 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010708 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010709 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010710 return NULL;
10711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010712 expr_ty _res = NULL;
10713 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010714 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10715 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010716 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010717 return NULL;
10718 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010719 int _start_lineno = p->tokens[_mark]->lineno;
10720 UNUSED(_start_lineno); // Only used by EXTRA macro
10721 int _start_col_offset = p->tokens[_mark]->col_offset;
10722 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010723 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010724 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010725 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010726 return NULL;
10727 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010728 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010729 expr_ty name_var;
10730 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010731 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010732 )
10733 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010734 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010735 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010736 goto done;
10737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010738 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010739 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010741 }
10742 { // 'True'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010743 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010744 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010745 return NULL;
10746 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010747 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010748 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010749 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010750 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010751 )
10752 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010753 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010754 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10755 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010757 return NULL;
10758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010759 int _end_lineno = _token->end_lineno;
10760 UNUSED(_end_lineno); // Only used by EXTRA macro
10761 int _end_col_offset = _token->end_col_offset;
10762 UNUSED(_end_col_offset); // Only used by EXTRA macro
10763 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10764 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010765 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010766 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010767 return NULL;
10768 }
10769 goto done;
10770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010771 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010772 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010774 }
10775 { // 'False'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010776 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010777 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010778 return NULL;
10779 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010780 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010781 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010782 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010783 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010784 )
10785 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010786 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010787 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10788 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010789 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010790 return NULL;
10791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010792 int _end_lineno = _token->end_lineno;
10793 UNUSED(_end_lineno); // Only used by EXTRA macro
10794 int _end_col_offset = _token->end_col_offset;
10795 UNUSED(_end_col_offset); // Only used by EXTRA macro
10796 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10797 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010798 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010799 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010800 return NULL;
10801 }
10802 goto done;
10803 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010804 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010805 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010807 }
10808 { // 'None'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010809 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010810 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010811 return NULL;
10812 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010813 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010814 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010815 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010816 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010817 )
10818 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010819 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010820 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10821 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010822 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010823 return NULL;
10824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010825 int _end_lineno = _token->end_lineno;
10826 UNUSED(_end_lineno); // Only used by EXTRA macro
10827 int _end_col_offset = _token->end_col_offset;
10828 UNUSED(_end_col_offset); // Only used by EXTRA macro
10829 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10830 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010831 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010832 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010833 return NULL;
10834 }
10835 goto done;
10836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010837 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010838 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010840 }
Pablo Galindo37824972020-06-11 19:29:13 +010010841 { // '__peg_parser__'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010842 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010843 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010844 return NULL;
10845 }
Pablo Galindo37824972020-06-11 19:29:13 +010010846 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010847 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010848 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010849 (_keyword = _PyPegen_expect_token(p, 531)) // token='__peg_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010850 )
10851 {
Pablo Galindo37824972020-06-11 19:29:13 +010010852 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010853 _res = RAISE_SYNTAX_ERROR ( "You found it!" );
10854 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010855 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010856 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010857 return NULL;
10858 }
10859 goto done;
10860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010861 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010862 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo37824972020-06-11 19:29:13 +010010863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__peg_parser__'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010864 }
10865 { // &STRING strings
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010866 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010867 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010868 return NULL;
10869 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010870 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010871 expr_ty strings_var;
10872 if (
10873 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10874 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010875 (strings_var = strings_rule(p)) // strings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010876 )
10877 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010878 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010879 _res = strings_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010880 goto done;
10881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010882 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010883 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010885 }
10886 { // NUMBER
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010887 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010888 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010889 return NULL;
10890 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010891 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010892 expr_ty number_var;
10893 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010894 (number_var = _PyPegen_number_token(p)) // NUMBER
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010895 )
10896 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010897 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010898 _res = number_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010899 goto done;
10900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010901 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010902 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010904 }
10905 { // &'(' (tuple | group | genexp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010906 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010907 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010908 return NULL;
10909 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010910 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010911 void *_tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010912 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010913 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010914 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010915 (_tmp_97_var = _tmp_97_rule(p)) // tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010916 )
10917 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010918 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 +030010919 _res = _tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010920 goto done;
10921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010922 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010923 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010925 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010926 { // &'[' (list | listcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010927 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010928 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010929 return NULL;
10930 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010931 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010932 void *_tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010933 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010934 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010935 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010936 (_tmp_98_var = _tmp_98_rule(p)) // list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010937 )
10938 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010939 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010940 _res = _tmp_98_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010941 goto done;
10942 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010943 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010944 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010946 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010947 { // &'{' (dict | set | dictcomp | setcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010948 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010949 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010950 return NULL;
10951 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010952 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 +030010953 void *_tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010954 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010955 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
Pablo Galindo2b74c832020-04-27 18:02:07 +010010956 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030010957 (_tmp_99_var = _tmp_99_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo2b74c832020-04-27 18:02:07 +010010958 )
10959 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010960 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 +030010961 _res = _tmp_99_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010962 goto done;
10963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010964 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010965 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010010967 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010968 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010969 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010970 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010971 return NULL;
10972 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010973 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010974 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010975 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010976 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010977 )
10978 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010979 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010980 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10981 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010983 return NULL;
10984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010985 int _end_lineno = _token->end_lineno;
10986 UNUSED(_end_lineno); // Only used by EXTRA macro
10987 int _end_col_offset = _token->end_col_offset;
10988 UNUSED(_end_col_offset); // Only used by EXTRA macro
10989 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
10990 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010991 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010992 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010993 return NULL;
10994 }
10995 goto done;
10996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010997 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010998 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011001 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011002 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011003 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011004 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011005}
11006
11007// strings: STRING+
11008static expr_ty
11009strings_rule(Parser *p)
11010{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011011 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011012 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011013 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011014 return NULL;
11015 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011016 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011017 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
11018 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011019 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011021 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011022 { // STRING+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011023 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011024 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011025 return NULL;
11026 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011027 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011028 asdl_seq * a;
11029 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011030 (a = _loop1_100_rule(p)) // STRING+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011031 )
11032 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011033 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011034 _res = _PyPegen_concatenate_strings ( p , a );
11035 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011036 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011037 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011038 return NULL;
11039 }
11040 goto done;
11041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011042 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011043 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011046 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011047 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011048 _PyPegen_insert_memo(p, _mark, strings_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011049 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011050 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011051}
11052
11053// list: '[' star_named_expressions? ']'
11054static expr_ty
11055list_rule(Parser *p)
11056{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011057 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011058 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011059 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011060 return NULL;
11061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011062 expr_ty _res = NULL;
11063 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011064 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11065 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011066 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011067 return NULL;
11068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011069 int _start_lineno = p->tokens[_mark]->lineno;
11070 UNUSED(_start_lineno); // Only used by EXTRA macro
11071 int _start_col_offset = p->tokens[_mark]->col_offset;
11072 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011073 { // '[' star_named_expressions? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011074 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011075 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011076 return NULL;
11077 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011078 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011079 Token * _literal;
11080 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011081 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011082 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011083 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011084 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011085 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011086 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011087 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011088 )
11089 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011090 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 +010011091 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11092 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011093 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011094 return NULL;
11095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011096 int _end_lineno = _token->end_lineno;
11097 UNUSED(_end_lineno); // Only used by EXTRA macro
11098 int _end_col_offset = _token->end_col_offset;
11099 UNUSED(_end_col_offset); // Only used by EXTRA macro
11100 _res = _Py_List ( a , Load , EXTRA );
11101 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011102 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011103 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011104 return NULL;
11105 }
11106 goto done;
11107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011108 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011109 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011112 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011113 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011114 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011115 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011116}
11117
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011118// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011119static expr_ty
11120listcomp_rule(Parser *p)
11121{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011122 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011124 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011125 return NULL;
11126 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011127 expr_ty _res = NULL;
11128 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011129 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11130 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011132 return NULL;
11133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011134 int _start_lineno = p->tokens[_mark]->lineno;
11135 UNUSED(_start_lineno); // Only used by EXTRA macro
11136 int _start_col_offset = p->tokens[_mark]->col_offset;
11137 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011138 { // '[' named_expression ~ for_if_clauses ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011139 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011140 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011141 return NULL;
11142 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011143 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11144 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011145 Token * _literal;
11146 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011147 expr_ty a;
11148 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011149 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011150 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011151 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011152 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011153 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011154 (_cut_var = 1)
11155 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011156 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011157 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011158 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011159 )
11160 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011161 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 +010011162 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11163 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011164 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011165 return NULL;
11166 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011167 int _end_lineno = _token->end_lineno;
11168 UNUSED(_end_lineno); // Only used by EXTRA macro
11169 int _end_col_offset = _token->end_col_offset;
11170 UNUSED(_end_col_offset); // Only used by EXTRA macro
11171 _res = _Py_ListComp ( a , b , EXTRA );
11172 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011173 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011174 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011175 return NULL;
11176 }
11177 goto done;
11178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011179 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011180 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11182 if (_cut_var) {
11183 D(p->level--);
11184 return NULL;
11185 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011186 }
11187 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011188 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011189 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011190 return NULL;
11191 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011192 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011193 void *invalid_comprehension_var;
11194 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011195 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011196 )
11197 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011198 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011199 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011200 goto done;
11201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011202 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011203 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011206 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011207 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011208 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011209 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011210}
11211
11212// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11213static expr_ty
11214tuple_rule(Parser *p)
11215{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011216 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011218 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011219 return NULL;
11220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011221 expr_ty _res = NULL;
11222 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011223 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11224 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011225 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011226 return NULL;
11227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011228 int _start_lineno = p->tokens[_mark]->lineno;
11229 UNUSED(_start_lineno); // Only used by EXTRA macro
11230 int _start_col_offset = p->tokens[_mark]->col_offset;
11231 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011232 { // '(' [star_named_expression ',' star_named_expressions?] ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011233 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011234 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011235 return NULL;
11236 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011237 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 +010011238 Token * _literal;
11239 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011240 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011241 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011242 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011243 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011244 (a = _tmp_101_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011245 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011246 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011247 )
11248 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011249 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 +010011250 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11251 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011252 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011253 return NULL;
11254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011255 int _end_lineno = _token->end_lineno;
11256 UNUSED(_end_lineno); // Only used by EXTRA macro
11257 int _end_col_offset = _token->end_col_offset;
11258 UNUSED(_end_col_offset); // Only used by EXTRA macro
11259 _res = _Py_Tuple ( a , Load , EXTRA );
11260 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011261 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011262 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011263 return NULL;
11264 }
11265 goto done;
11266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011267 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011268 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011270 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011271 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011272 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011273 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011274 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011275}
11276
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011277// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011278static expr_ty
11279group_rule(Parser *p)
11280{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011281 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011282 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011283 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011284 return NULL;
11285 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011286 expr_ty _res = NULL;
11287 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011288 { // '(' (yield_expr | named_expression) ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011289 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011290 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011291 return NULL;
11292 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011293 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 +010011294 Token * _literal;
11295 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011296 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011297 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011298 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011299 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011300 (a = _tmp_102_rule(p)) // yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011301 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011302 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011303 )
11304 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011305 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 +010011306 _res = a;
11307 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011308 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011309 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011310 return NULL;
11311 }
11312 goto done;
11313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011314 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011315 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011317 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011318 { // invalid_group
11319 if (p->error_indicator) {
11320 D(p->level--);
11321 return NULL;
11322 }
11323 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11324 void *invalid_group_var;
11325 if (
11326 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11327 )
11328 {
11329 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11330 _res = invalid_group_var;
11331 goto done;
11332 }
11333 p->mark = _mark;
11334 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11336 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011337 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011338 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011339 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011340 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011341}
11342
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011343// genexp: '(' expression ~ for_if_clauses ')' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011344static expr_ty
11345genexp_rule(Parser *p)
11346{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011347 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011348 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011349 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011350 return NULL;
11351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011352 expr_ty _res = NULL;
11353 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011354 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11355 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011356 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011357 return NULL;
11358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011359 int _start_lineno = p->tokens[_mark]->lineno;
11360 UNUSED(_start_lineno); // Only used by EXTRA macro
11361 int _start_col_offset = p->tokens[_mark]->col_offset;
11362 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011363 { // '(' expression ~ for_if_clauses ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011364 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011365 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011366 return NULL;
11367 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011368 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
11369 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011370 Token * _literal;
11371 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011372 expr_ty a;
11373 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011374 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011375 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011376 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011377 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011378 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011379 (_cut_var = 1)
11380 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011381 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011382 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011383 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011384 )
11385 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011386 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 +010011387 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11388 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011389 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011390 return NULL;
11391 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011392 int _end_lineno = _token->end_lineno;
11393 UNUSED(_end_lineno); // Only used by EXTRA macro
11394 int _end_col_offset = _token->end_col_offset;
11395 UNUSED(_end_col_offset); // Only used by EXTRA macro
11396 _res = _Py_GeneratorExp ( a , b , EXTRA );
11397 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011398 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011399 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011400 return NULL;
11401 }
11402 goto done;
11403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011404 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011405 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' expression ~ for_if_clauses ')'"));
11407 if (_cut_var) {
11408 D(p->level--);
11409 return NULL;
11410 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011411 }
11412 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011413 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011414 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011415 return NULL;
11416 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011417 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011418 void *invalid_comprehension_var;
11419 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011420 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011421 )
11422 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011423 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011424 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011425 goto done;
11426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011427 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011428 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011431 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011432 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011433 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011434 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011435}
11436
11437// set: '{' expressions_list '}'
11438static expr_ty
11439set_rule(Parser *p)
11440{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011441 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011443 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011444 return NULL;
11445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011446 expr_ty _res = NULL;
11447 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011448 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11449 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011450 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011451 return NULL;
11452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011453 int _start_lineno = p->tokens[_mark]->lineno;
11454 UNUSED(_start_lineno); // Only used by EXTRA macro
11455 int _start_col_offset = p->tokens[_mark]->col_offset;
11456 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011457 { // '{' expressions_list '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011458 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011459 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011460 return NULL;
11461 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011462 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011463 Token * _literal;
11464 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011465 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011466 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011467 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011468 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011469 (a = expressions_list_rule(p)) // expressions_list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011470 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011471 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011472 )
11473 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011474 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011475 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11476 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011477 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011478 return NULL;
11479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011480 int _end_lineno = _token->end_lineno;
11481 UNUSED(_end_lineno); // Only used by EXTRA macro
11482 int _end_col_offset = _token->end_col_offset;
11483 UNUSED(_end_col_offset); // Only used by EXTRA macro
11484 _res = _Py_Set ( a , EXTRA );
11485 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011486 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011487 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011488 return NULL;
11489 }
11490 goto done;
11491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011492 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011493 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
11494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011495 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011496 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011497 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011498 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011499 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011500}
11501
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011502// setcomp: '{' expression ~ for_if_clauses '}' | invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011503static expr_ty
11504setcomp_rule(Parser *p)
11505{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011506 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011508 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011509 return NULL;
11510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011511 expr_ty _res = NULL;
11512 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011513 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11514 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011515 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011516 return NULL;
11517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011518 int _start_lineno = p->tokens[_mark]->lineno;
11519 UNUSED(_start_lineno); // Only used by EXTRA macro
11520 int _start_col_offset = p->tokens[_mark]->col_offset;
11521 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011522 { // '{' expression ~ for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011523 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011524 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011525 return NULL;
11526 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011527 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11528 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011529 Token * _literal;
11530 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011531 expr_ty a;
11532 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011533 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011534 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011535 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011536 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011537 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011538 (_cut_var = 1)
11539 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011540 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011541 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011542 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011543 )
11544 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011545 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 +010011546 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11547 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011548 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011549 return NULL;
11550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011551 int _end_lineno = _token->end_lineno;
11552 UNUSED(_end_lineno); // Only used by EXTRA macro
11553 int _end_col_offset = _token->end_col_offset;
11554 UNUSED(_end_col_offset); // Only used by EXTRA macro
11555 _res = _Py_SetComp ( a , b , EXTRA );
11556 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011557 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011558 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011559 return NULL;
11560 }
11561 goto done;
11562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011563 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011564 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expression ~ for_if_clauses '}'"));
11566 if (_cut_var) {
11567 D(p->level--);
11568 return NULL;
11569 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011570 }
11571 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011572 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011573 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011574 return NULL;
11575 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011576 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011577 void *invalid_comprehension_var;
11578 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011579 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011580 )
11581 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011582 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011583 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011584 goto done;
11585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011586 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011587 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011590 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011591 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011592 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011593 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011594}
11595
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011596// dict: '{' double_starred_kvpairs? '}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011597static expr_ty
11598dict_rule(Parser *p)
11599{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011600 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011602 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011603 return NULL;
11604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011605 expr_ty _res = NULL;
11606 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011607 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11608 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011609 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011610 return NULL;
11611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011612 int _start_lineno = p->tokens[_mark]->lineno;
11613 UNUSED(_start_lineno); // Only used by EXTRA macro
11614 int _start_col_offset = p->tokens[_mark]->col_offset;
11615 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011616 { // '{' double_starred_kvpairs? '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011618 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011619 return NULL;
11620 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011621 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011622 Token * _literal;
11623 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011624 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011625 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011626 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011627 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011628 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011629 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011630 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011631 )
11632 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011633 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 +010011634 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11635 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011637 return NULL;
11638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011639 int _end_lineno = _token->end_lineno;
11640 UNUSED(_end_lineno); // Only used by EXTRA macro
11641 int _end_col_offset = _token->end_col_offset;
11642 UNUSED(_end_col_offset); // Only used by EXTRA macro
11643 _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
11644 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011645 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011646 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011647 return NULL;
11648 }
11649 goto done;
11650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011651 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011652 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011655 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011656 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011657 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011658 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011659}
11660
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011661// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011662static expr_ty
11663dictcomp_rule(Parser *p)
11664{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011665 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011666 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011667 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011668 return NULL;
11669 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011670 expr_ty _res = NULL;
11671 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011672 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11673 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011675 return NULL;
11676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011677 int _start_lineno = p->tokens[_mark]->lineno;
11678 UNUSED(_start_lineno); // Only used by EXTRA macro
11679 int _start_col_offset = p->tokens[_mark]->col_offset;
11680 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011681 { // '{' kvpair for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011682 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011683 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011684 return NULL;
11685 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011686 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 +010011687 Token * _literal;
11688 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011689 KeyValuePair* a;
11690 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011691 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011692 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011693 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011694 (a = kvpair_rule(p)) // kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011695 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011696 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011697 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011698 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011699 )
11700 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011701 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 +010011702 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11703 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011704 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011705 return NULL;
11706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011707 int _end_lineno = _token->end_lineno;
11708 UNUSED(_end_lineno); // Only used by EXTRA macro
11709 int _end_col_offset = _token->end_col_offset;
11710 UNUSED(_end_col_offset); // Only used by EXTRA macro
11711 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11712 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011713 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011714 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011715 return NULL;
11716 }
11717 goto done;
11718 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011719 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011720 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011722 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011723 { // invalid_dict_comprehension
11724 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011725 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011726 return NULL;
11727 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011728 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 -070011729 void *invalid_dict_comprehension_var;
11730 if (
11731 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11732 )
11733 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011734 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 -070011735 _res = invalid_dict_comprehension_var;
11736 goto done;
11737 }
11738 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011739 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011742 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011743 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011744 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011745 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011746}
11747
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011748// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011749static asdl_seq*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011750double_starred_kvpairs_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011751{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011752 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011753 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011754 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011755 return NULL;
11756 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011757 asdl_seq* _res = NULL;
11758 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011759 { // ','.double_starred_kvpair+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011761 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011762 return NULL;
11763 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011764 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 +010011765 void *_opt_var;
11766 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011767 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011768 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011769 (a = _gather_103_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011770 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011771 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011772 )
11773 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011774 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 +010011775 _res = a;
11776 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011777 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011778 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011779 return NULL;
11780 }
11781 goto done;
11782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011783 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011784 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011787 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011788 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011789 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011790 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011791}
11792
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011793// double_starred_kvpair: '**' bitwise_or | kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011794static KeyValuePair*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011795double_starred_kvpair_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011796{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011797 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011798 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011799 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011800 return NULL;
11801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011802 KeyValuePair* _res = NULL;
11803 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011804 { // '**' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011806 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011807 return NULL;
11808 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011809 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 +010011810 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011811 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011812 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011813 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011814 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011815 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011816 )
11817 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011818 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 +010011819 _res = _PyPegen_key_value_pair ( p , NULL , a );
11820 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011821 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011822 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011823 return NULL;
11824 }
11825 goto done;
11826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011827 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011828 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011830 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011831 { // kvpair
11832 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011833 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011834 return NULL;
11835 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011836 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 -070011837 KeyValuePair* kvpair_var;
11838 if (
11839 (kvpair_var = kvpair_rule(p)) // kvpair
11840 )
11841 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011842 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 -070011843 _res = kvpair_var;
11844 goto done;
11845 }
11846 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011847 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011849 }
11850 _res = NULL;
11851 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011852 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011853 return _res;
11854}
11855
11856// kvpair: expression ':' expression
11857static KeyValuePair*
11858kvpair_rule(Parser *p)
11859{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011860 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011862 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011863 return NULL;
11864 }
11865 KeyValuePair* _res = NULL;
11866 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011867 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011868 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011869 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011870 return NULL;
11871 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011872 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011873 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011874 expr_ty a;
11875 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011876 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011877 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011878 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011879 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011880 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011881 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011882 )
11883 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011884 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011885 _res = _PyPegen_key_value_pair ( p , a , b );
11886 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011887 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011888 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011889 return NULL;
11890 }
11891 goto done;
11892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011893 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011894 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011897 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011898 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011899 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011900 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011901}
11902
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011903// for_if_clauses: for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011904static asdl_seq*
11905for_if_clauses_rule(Parser *p)
11906{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011907 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011908 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011909 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011910 return NULL;
11911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011912 asdl_seq* _res = NULL;
11913 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011914 { // for_if_clause+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011915 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011916 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011917 return NULL;
11918 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011919 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 +030011920 asdl_seq * _loop1_105_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011921 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011922 (_loop1_105_var = _loop1_105_rule(p)) // for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011923 )
11924 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011925 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 +030011926 _res = _loop1_105_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011927 goto done;
11928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011929 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011930 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011932 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011933 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011934 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011935 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011936 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011937}
11938
11939// for_if_clause:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011940// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11941// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11942// | invalid_for_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011943static comprehension_ty
11944for_if_clause_rule(Parser *p)
11945{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011946 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011947 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011948 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011949 return NULL;
11950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011951 comprehension_ty _res = NULL;
11952 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011953 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011954 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011955 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011956 return NULL;
11957 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011958 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11959 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011960 Token * _keyword;
11961 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011962 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010011963 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011964 expr_ty b;
11965 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011966 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011967 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011968 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011969 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011970 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011971 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011972 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011973 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011974 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011975 (_cut_var = 1)
11976 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011977 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011978 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011979 (c = _loop0_106_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011980 )
11981 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011982 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011983 _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
11984 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011985 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011986 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011987 return NULL;
11988 }
11989 goto done;
11990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011991 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011992 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11994 if (_cut_var) {
11995 D(p->level--);
11996 return NULL;
11997 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011998 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030011999 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012000 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012001 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012002 return NULL;
12003 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012004 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12005 int _cut_var = 0;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012006 Token * _keyword;
12007 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012008 expr_ty a;
12009 expr_ty b;
12010 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012011 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012012 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012013 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012014 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012015 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012016 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012017 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012018 (_cut_var = 1)
12019 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012020 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012021 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012022 (c = _loop0_107_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030012023 )
12024 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012025 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012026 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12027 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012028 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012029 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012030 return NULL;
12031 }
12032 goto done;
12033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012034 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012035 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030012036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12037 if (_cut_var) {
12038 D(p->level--);
12039 return NULL;
12040 }
12041 }
12042 { // invalid_for_target
12043 if (p->error_indicator) {
12044 D(p->level--);
12045 return NULL;
12046 }
12047 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12048 void *invalid_for_target_var;
12049 if (
12050 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12051 )
12052 {
12053 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12054 _res = invalid_for_target_var;
12055 goto done;
12056 }
12057 p->mark = _mark;
12058 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012060 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012061 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012062 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012063 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012064 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012065}
12066
12067// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12068static expr_ty
12069yield_expr_rule(Parser *p)
12070{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012071 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012072 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012073 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012074 return NULL;
12075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012076 expr_ty _res = NULL;
12077 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012078 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12079 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012080 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012081 return NULL;
12082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012083 int _start_lineno = p->tokens[_mark]->lineno;
12084 UNUSED(_start_lineno); // Only used by EXTRA macro
12085 int _start_col_offset = p->tokens[_mark]->col_offset;
12086 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012087 { // 'yield' 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012088 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012089 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012090 return NULL;
12091 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012092 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 +010012093 Token * _keyword;
12094 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012095 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012096 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012097 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012098 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012099 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012100 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012101 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012102 )
12103 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012104 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 +010012105 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12106 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012107 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012108 return NULL;
12109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012110 int _end_lineno = _token->end_lineno;
12111 UNUSED(_end_lineno); // Only used by EXTRA macro
12112 int _end_col_offset = _token->end_col_offset;
12113 UNUSED(_end_col_offset); // Only used by EXTRA macro
12114 _res = _Py_YieldFrom ( a , EXTRA );
12115 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012116 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012117 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012118 return NULL;
12119 }
12120 goto done;
12121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012122 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012123 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012125 }
12126 { // 'yield' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012127 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012128 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012129 return NULL;
12130 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012131 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 +010012132 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012133 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012134 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012135 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012136 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012137 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012138 )
12139 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012140 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 +010012141 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12142 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012143 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012144 return NULL;
12145 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012146 int _end_lineno = _token->end_lineno;
12147 UNUSED(_end_lineno); // Only used by EXTRA macro
12148 int _end_col_offset = _token->end_col_offset;
12149 UNUSED(_end_col_offset); // Only used by EXTRA macro
12150 _res = _Py_Yield ( a , EXTRA );
12151 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012152 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012153 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012154 return NULL;
12155 }
12156 goto done;
12157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012158 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012159 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012162 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012163 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012164 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012165 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012166}
12167
12168// arguments: args ','? &')' | incorrect_arguments
12169static expr_ty
12170arguments_rule(Parser *p)
12171{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012172 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012173 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012174 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012175 return NULL;
12176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012177 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012178 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12179 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012180 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012182 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012183 { // args ','? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012184 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012185 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012186 return NULL;
12187 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012188 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012189 void *_opt_var;
12190 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012191 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012192 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012193 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012194 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012195 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012196 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012197 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012198 )
12199 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012200 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012201 _res = a;
12202 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012203 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012204 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012205 return NULL;
12206 }
12207 goto done;
12208 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012209 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012210 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012212 }
12213 { // incorrect_arguments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012214 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012215 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012216 return NULL;
12217 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012218 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012219 void *incorrect_arguments_var;
12220 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012221 (incorrect_arguments_var = incorrect_arguments_rule(p)) // incorrect_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012222 )
12223 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012224 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012225 _res = incorrect_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012226 goto done;
12227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012228 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012229 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012232 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012233 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012234 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012235 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012236 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012237}
12238
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012239// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012240static expr_ty
12241args_rule(Parser *p)
12242{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012243 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012244 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012245 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012246 return NULL;
12247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012248 expr_ty _res = NULL;
12249 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012250 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12251 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012252 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012253 return NULL;
12254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012255 int _start_lineno = p->tokens[_mark]->lineno;
12256 UNUSED(_start_lineno); // Only used by EXTRA macro
12257 int _start_col_offset = p->tokens[_mark]->col_offset;
12258 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012259 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012260 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012261 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012262 return NULL;
12263 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012264 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
12265 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012266 void *b;
12267 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012268 (a = _gather_108_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012269 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012270 (b = _tmp_110_rule(p), 1) // [',' kwargs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012271 )
12272 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012273 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindobe172952020-09-03 16:35:17 +010012274 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12275 if (_token == NULL) {
12276 D(p->level--);
12277 return NULL;
12278 }
12279 int _end_lineno = _token->end_lineno;
12280 UNUSED(_end_lineno); // Only used by EXTRA macro
12281 int _end_col_offset = _token->end_col_offset;
12282 UNUSED(_end_col_offset); // Only used by EXTRA macro
12283 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012284 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012285 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012287 return NULL;
12288 }
12289 goto done;
12290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012291 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012292 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012294 }
12295 { // kwargs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012296 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012297 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012298 return NULL;
12299 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012300 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012301 asdl_seq* a;
12302 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012303 (a = kwargs_rule(p)) // kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012304 )
12305 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012306 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012307 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12308 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012309 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012310 return NULL;
12311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012312 int _end_lineno = _token->end_lineno;
12313 UNUSED(_end_lineno); // Only used by EXTRA macro
12314 int _end_col_offset = _token->end_col_offset;
12315 UNUSED(_end_col_offset); // Only used by EXTRA macro
12316 _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 );
12317 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012318 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012319 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012320 return NULL;
12321 }
12322 goto done;
12323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012324 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012325 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012327 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012328 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012329 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012330 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012331 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012332}
12333
12334// kwargs:
12335// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12336// | ','.kwarg_or_starred+
12337// | ','.kwarg_or_double_starred+
12338static asdl_seq*
12339kwargs_rule(Parser *p)
12340{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012341 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012342 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012343 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012344 return NULL;
12345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012346 asdl_seq* _res = NULL;
12347 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012348 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012349 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012350 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012351 return NULL;
12352 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012353 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 +010012354 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012355 asdl_seq * a;
12356 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012357 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012358 (a = _gather_111_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012359 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012360 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012361 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012362 (b = _gather_113_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012363 )
12364 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012365 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 +010012366 _res = _PyPegen_join_sequences ( p , a , b );
12367 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012368 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012369 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012370 return NULL;
12371 }
12372 goto done;
12373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012374 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012375 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012377 }
12378 { // ','.kwarg_or_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012379 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012380 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012381 return NULL;
12382 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012383 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012384 asdl_seq * _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012385 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012386 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012387 )
12388 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012389 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012390 _res = _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012391 goto done;
12392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012393 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012394 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012396 }
12397 { // ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012398 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012399 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012400 return NULL;
12401 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012402 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012403 asdl_seq * _gather_117_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012404 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012405 (_gather_117_var = _gather_117_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012406 )
12407 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012408 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012409 _res = _gather_117_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012410 goto done;
12411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012412 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012413 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012416 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012417 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012418 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012419 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012420}
12421
12422// starred_expression: '*' expression
12423static expr_ty
12424starred_expression_rule(Parser *p)
12425{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012426 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012427 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012428 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012429 return NULL;
12430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012431 expr_ty _res = NULL;
12432 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012433 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12434 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012436 return NULL;
12437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012438 int _start_lineno = p->tokens[_mark]->lineno;
12439 UNUSED(_start_lineno); // Only used by EXTRA macro
12440 int _start_col_offset = p->tokens[_mark]->col_offset;
12441 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012442 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012443 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012444 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012445 return NULL;
12446 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012447 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012448 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012449 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012450 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012451 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012452 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012453 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012454 )
12455 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012456 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012457 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12458 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012459 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012460 return NULL;
12461 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012462 int _end_lineno = _token->end_lineno;
12463 UNUSED(_end_lineno); // Only used by EXTRA macro
12464 int _end_col_offset = _token->end_col_offset;
12465 UNUSED(_end_col_offset); // Only used by EXTRA macro
12466 _res = _Py_Starred ( a , Load , EXTRA );
12467 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012468 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012469 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012470 return NULL;
12471 }
12472 goto done;
12473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012474 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012475 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012478 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012479 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012480 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012481 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012482}
12483
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012484// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012485static KeywordOrStarred*
12486kwarg_or_starred_rule(Parser *p)
12487{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012488 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012489 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012490 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012491 return NULL;
12492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012493 KeywordOrStarred* _res = NULL;
12494 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012495 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12496 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012497 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012498 return NULL;
12499 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012500 int _start_lineno = p->tokens[_mark]->lineno;
12501 UNUSED(_start_lineno); // Only used by EXTRA macro
12502 int _start_col_offset = p->tokens[_mark]->col_offset;
12503 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012504 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012505 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012506 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012507 return NULL;
12508 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012509 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 +010012510 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012511 expr_ty a;
12512 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012513 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012514 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012515 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012516 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012517 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012518 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012519 )
12520 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012521 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 +010012522 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12523 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012524 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012525 return NULL;
12526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012527 int _end_lineno = _token->end_lineno;
12528 UNUSED(_end_lineno); // Only used by EXTRA macro
12529 int _end_col_offset = _token->end_col_offset;
12530 UNUSED(_end_col_offset); // Only used by EXTRA macro
12531 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12532 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012533 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012534 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012535 return NULL;
12536 }
12537 goto done;
12538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012539 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012540 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012542 }
12543 { // starred_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012545 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012546 return NULL;
12547 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012548 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 +010012549 expr_ty a;
12550 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012551 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012552 )
12553 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012554 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 +010012555 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12556 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012557 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012558 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012559 return NULL;
12560 }
12561 goto done;
12562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012563 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012564 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012566 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012567 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012569 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012570 return NULL;
12571 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012572 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 +030012573 void *invalid_kwarg_var;
12574 if (
12575 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12576 )
12577 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012578 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 +010012579 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012580 goto done;
12581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012582 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012583 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012586 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012587 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012588 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012589 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012590}
12591
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012592// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012593static KeywordOrStarred*
12594kwarg_or_double_starred_rule(Parser *p)
12595{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012596 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012598 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012599 return NULL;
12600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012601 KeywordOrStarred* _res = NULL;
12602 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012603 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12604 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012605 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012606 return NULL;
12607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012608 int _start_lineno = p->tokens[_mark]->lineno;
12609 UNUSED(_start_lineno); // Only used by EXTRA macro
12610 int _start_col_offset = p->tokens[_mark]->col_offset;
12611 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012612 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012613 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012614 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012615 return NULL;
12616 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012617 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 +010012618 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012619 expr_ty a;
12620 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012621 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012622 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012623 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012624 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012625 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012626 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012627 )
12628 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012629 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 +010012630 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12631 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012633 return NULL;
12634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012635 int _end_lineno = _token->end_lineno;
12636 UNUSED(_end_lineno); // Only used by EXTRA macro
12637 int _end_col_offset = _token->end_col_offset;
12638 UNUSED(_end_col_offset); // Only used by EXTRA macro
12639 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12640 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012641 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012642 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012643 return NULL;
12644 }
12645 goto done;
12646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012647 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012648 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012650 }
12651 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012652 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012653 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012654 return NULL;
12655 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012656 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 +010012657 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012658 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012659 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012660 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012661 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012662 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012663 )
12664 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012665 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 +010012666 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12667 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012669 return NULL;
12670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012671 int _end_lineno = _token->end_lineno;
12672 UNUSED(_end_lineno); // Only used by EXTRA macro
12673 int _end_col_offset = _token->end_col_offset;
12674 UNUSED(_end_col_offset); // Only used by EXTRA macro
12675 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
12676 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012677 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012678 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012679 return NULL;
12680 }
12681 goto done;
12682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012683 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012684 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012686 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012687 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012688 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012689 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012690 return NULL;
12691 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012692 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 +030012693 void *invalid_kwarg_var;
12694 if (
12695 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12696 )
12697 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012698 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 +010012699 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012700 goto done;
12701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012702 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012703 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012706 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012707 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012708 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012709 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012710}
12711
12712// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12713static expr_ty
12714star_targets_rule(Parser *p)
12715{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012716 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012717 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012718 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012719 return NULL;
12720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012721 expr_ty _res = NULL;
12722 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012723 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12724 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012725 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012726 return NULL;
12727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012728 int _start_lineno = p->tokens[_mark]->lineno;
12729 UNUSED(_start_lineno); // Only used by EXTRA macro
12730 int _start_col_offset = p->tokens[_mark]->col_offset;
12731 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012732 { // star_target !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012733 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012734 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012735 return NULL;
12736 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012737 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012738 expr_ty a;
12739 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012740 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012741 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012742 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012743 )
12744 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012745 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 +010012746 _res = a;
12747 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012748 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012749 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012750 return NULL;
12751 }
12752 goto done;
12753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012754 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012755 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012757 }
12758 { // star_target ((',' star_target))* ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012759 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012760 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012761 return NULL;
12762 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012763 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 +010012764 void *_opt_var;
12765 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012766 expr_ty a;
12767 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012768 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012769 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012770 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012771 (b = _loop0_119_rule(p)) // ((',' star_target))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012772 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012773 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012774 )
12775 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012776 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 +010012777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12778 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012780 return NULL;
12781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012782 int _end_lineno = _token->end_lineno;
12783 UNUSED(_end_lineno); // Only used by EXTRA macro
12784 int _end_col_offset = _token->end_col_offset;
12785 UNUSED(_end_col_offset); // Only used by EXTRA macro
12786 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
12787 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012788 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012789 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012790 return NULL;
12791 }
12792 goto done;
12793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012794 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012795 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012798 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012799 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012800 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012801 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012802}
12803
12804// star_targets_seq: ','.star_target+ ','?
12805static asdl_seq*
12806star_targets_seq_rule(Parser *p)
12807{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012808 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012809 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012810 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012811 return NULL;
12812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012813 asdl_seq* _res = NULL;
12814 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012815 { // ','.star_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012816 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012817 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012818 return NULL;
12819 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012820 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 +010012821 void *_opt_var;
12822 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012823 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012824 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012825 (a = _gather_120_rule(p)) // ','.star_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012826 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012827 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012828 )
12829 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012830 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 +010012831 _res = a;
12832 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012833 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012834 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012835 return NULL;
12836 }
12837 goto done;
12838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012839 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012840 D(fprintf(stderr, "%*c%s star_targets_seq[%d-%d]: %s failed!\n", p->level, ' ',
12841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012843 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012844 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012845 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012846 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012847}
12848
12849// star_target:
12850// | '*' (!'*' star_target)
12851// | t_primary '.' NAME !t_lookahead
12852// | t_primary '[' slices ']' !t_lookahead
12853// | star_atom
12854static expr_ty
12855star_target_rule(Parser *p)
12856{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012857 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012858 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012859 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012860 return NULL;
12861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012862 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012863 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12864 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012865 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012867 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012868 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12869 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012871 return NULL;
12872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012873 int _start_lineno = p->tokens[_mark]->lineno;
12874 UNUSED(_start_lineno); // Only used by EXTRA macro
12875 int _start_col_offset = p->tokens[_mark]->col_offset;
12876 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012877 { // '*' (!'*' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012878 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012879 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012880 return NULL;
12881 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012882 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012883 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012884 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012885 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012886 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012887 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010012888 (a = _tmp_122_rule(p)) // !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012889 )
12890 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012891 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 +010012892 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12893 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012894 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012895 return NULL;
12896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012897 int _end_lineno = _token->end_lineno;
12898 UNUSED(_end_lineno); // Only used by EXTRA macro
12899 int _end_col_offset = _token->end_col_offset;
12900 UNUSED(_end_col_offset); // Only used by EXTRA macro
12901 _res = _Py_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
12902 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012903 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012904 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012905 return NULL;
12906 }
12907 goto done;
12908 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012909 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012910 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012912 }
12913 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012914 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012915 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012916 return NULL;
12917 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012918 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 +010012919 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012920 expr_ty a;
12921 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012922 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012923 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012924 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012925 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012926 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012927 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012928 &&
12929 _PyPegen_lookahead(0, t_lookahead_rule, p)
12930 )
12931 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012932 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 +010012933 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12934 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012935 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012936 return NULL;
12937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012938 int _end_lineno = _token->end_lineno;
12939 UNUSED(_end_lineno); // Only used by EXTRA macro
12940 int _end_col_offset = _token->end_col_offset;
12941 UNUSED(_end_col_offset); // Only used by EXTRA macro
12942 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
12943 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012944 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012945 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012946 return NULL;
12947 }
12948 goto done;
12949 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012950 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012951 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012953 }
12954 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012955 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012956 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012957 return NULL;
12958 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012959 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 +010012960 Token * _literal;
12961 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012962 expr_ty a;
12963 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012964 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012965 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012966 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012967 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012968 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012969 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012970 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012971 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012972 &&
12973 _PyPegen_lookahead(0, t_lookahead_rule, p)
12974 )
12975 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012976 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 +010012977 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12978 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012979 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012980 return NULL;
12981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012982 int _end_lineno = _token->end_lineno;
12983 UNUSED(_end_lineno); // Only used by EXTRA macro
12984 int _end_col_offset = _token->end_col_offset;
12985 UNUSED(_end_col_offset); // Only used by EXTRA macro
12986 _res = _Py_Subscript ( a , b , Store , EXTRA );
12987 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012988 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012989 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012990 return NULL;
12991 }
12992 goto done;
12993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012994 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012995 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012997 }
12998 { // star_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013000 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013001 return NULL;
13002 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013003 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013004 expr_ty star_atom_var;
13005 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013006 (star_atom_var = star_atom_rule(p)) // star_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013007 )
13008 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013009 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 +010013010 _res = star_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013011 goto done;
13012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013013 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013014 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013017 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013018 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013019 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013020 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013021 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013022}
13023
13024// star_atom:
13025// | NAME
13026// | '(' star_target ')'
13027// | '(' star_targets_seq? ')'
13028// | '[' star_targets_seq? ']'
13029static expr_ty
13030star_atom_rule(Parser *p)
13031{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013032 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013033 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013034 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013035 return NULL;
13036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013037 expr_ty _res = NULL;
13038 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013039 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13040 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013041 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013042 return NULL;
13043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013044 int _start_lineno = p->tokens[_mark]->lineno;
13045 UNUSED(_start_lineno); // Only used by EXTRA macro
13046 int _start_col_offset = p->tokens[_mark]->col_offset;
13047 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013048 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013049 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013050 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013051 return NULL;
13052 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013053 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013054 expr_ty a;
13055 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013056 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013057 )
13058 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013059 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013060 _res = _PyPegen_set_expr_context ( p , a , Store );
13061 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013062 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013063 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013064 return NULL;
13065 }
13066 goto done;
13067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013068 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013069 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013071 }
13072 { // '(' star_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013073 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013074 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013075 return NULL;
13076 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013077 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013078 Token * _literal;
13079 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013080 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013081 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013082 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013083 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013084 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013085 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013086 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013087 )
13088 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013089 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 +010013090 _res = _PyPegen_set_expr_context ( p , a , Store );
13091 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013092 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013093 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013094 return NULL;
13095 }
13096 goto done;
13097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013098 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013099 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013101 }
13102 { // '(' star_targets_seq? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013104 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013105 return NULL;
13106 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013107 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 +010013108 Token * _literal;
13109 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013110 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013111 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013112 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013113 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013114 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013115 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013116 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013117 )
13118 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013119 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 +010013120 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13121 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013122 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013123 return NULL;
13124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013125 int _end_lineno = _token->end_lineno;
13126 UNUSED(_end_lineno); // Only used by EXTRA macro
13127 int _end_col_offset = _token->end_col_offset;
13128 UNUSED(_end_col_offset); // Only used by EXTRA macro
13129 _res = _Py_Tuple ( a , Store , EXTRA );
13130 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013131 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013132 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013133 return NULL;
13134 }
13135 goto done;
13136 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013137 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013138 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013140 }
13141 { // '[' star_targets_seq? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013142 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013143 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013144 return NULL;
13145 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013146 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 +010013147 Token * _literal;
13148 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013149 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013150 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013151 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013152 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013153 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013154 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013155 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013156 )
13157 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013158 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 +010013159 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13160 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013162 return NULL;
13163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013164 int _end_lineno = _token->end_lineno;
13165 UNUSED(_end_lineno); // Only used by EXTRA macro
13166 int _end_col_offset = _token->end_col_offset;
13167 UNUSED(_end_col_offset); // Only used by EXTRA macro
13168 _res = _Py_List ( a , Store , EXTRA );
13169 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013170 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013171 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013172 return NULL;
13173 }
13174 goto done;
13175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013176 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013177 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013180 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013181 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013182 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013183 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013184}
13185
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013186// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013187static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013188single_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013189{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013190 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013192 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013193 return NULL;
13194 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013195 expr_ty _res = NULL;
13196 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013197 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013198 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013199 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013200 return NULL;
13201 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013202 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 +030013203 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013204 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013205 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013206 )
13207 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013208 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 +030013209 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013210 goto done;
13211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013212 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013213 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013215 }
13216 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013218 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013219 return NULL;
13220 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013221 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013222 expr_ty a;
13223 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013224 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013225 )
13226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013227 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013228 _res = _PyPegen_set_expr_context ( p , a , Store );
13229 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013230 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013232 return NULL;
13233 }
13234 goto done;
13235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013236 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013237 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013239 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013240 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013242 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013243 return NULL;
13244 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013245 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013246 Token * _literal;
13247 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013248 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013249 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013250 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013251 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013252 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013253 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013254 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013255 )
13256 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013257 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 +010013258 _res = a;
13259 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013260 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013261 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013262 return NULL;
13263 }
13264 goto done;
13265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013266 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013267 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013270 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013271 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013272 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013273 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013274}
13275
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013276// single_subscript_attribute_target:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013277// | t_primary '.' NAME !t_lookahead
13278// | t_primary '[' slices ']' !t_lookahead
13279static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013280single_subscript_attribute_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013281{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013282 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013283 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013284 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013285 return NULL;
13286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013287 expr_ty _res = NULL;
13288 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013289 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013292 return NULL;
13293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013294 int _start_lineno = p->tokens[_mark]->lineno;
13295 UNUSED(_start_lineno); // Only used by EXTRA macro
13296 int _start_col_offset = p->tokens[_mark]->col_offset;
13297 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013298 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013299 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013300 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013301 return NULL;
13302 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013303 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 +010013304 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013305 expr_ty a;
13306 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013307 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013308 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013309 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013310 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013311 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013312 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013313 &&
13314 _PyPegen_lookahead(0, t_lookahead_rule, p)
13315 )
13316 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013317 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 +010013318 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13319 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013320 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013321 return NULL;
13322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013323 int _end_lineno = _token->end_lineno;
13324 UNUSED(_end_lineno); // Only used by EXTRA macro
13325 int _end_col_offset = _token->end_col_offset;
13326 UNUSED(_end_col_offset); // Only used by EXTRA macro
13327 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13328 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013329 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013330 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013331 return NULL;
13332 }
13333 goto done;
13334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013335 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013336 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013338 }
13339 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013340 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013341 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013342 return NULL;
13343 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013344 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 +010013345 Token * _literal;
13346 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013347 expr_ty a;
13348 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013349 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013350 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013351 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013352 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013353 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013354 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013355 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013356 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013357 &&
13358 _PyPegen_lookahead(0, t_lookahead_rule, p)
13359 )
13360 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013361 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 +010013362 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13363 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013364 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013365 return NULL;
13366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013367 int _end_lineno = _token->end_lineno;
13368 UNUSED(_end_lineno); // Only used by EXTRA macro
13369 int _end_col_offset = _token->end_col_offset;
13370 UNUSED(_end_col_offset); // Only used by EXTRA macro
13371 _res = _Py_Subscript ( a , b , Store , EXTRA );
13372 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013373 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013374 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013375 return NULL;
13376 }
13377 goto done;
13378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013379 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013380 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013383 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013384 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013385 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013386 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013387}
13388
13389// del_targets: ','.del_target+ ','?
13390static asdl_seq*
13391del_targets_rule(Parser *p)
13392{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013393 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013394 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013395 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013396 return NULL;
13397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013398 asdl_seq* _res = NULL;
13399 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013400 { // ','.del_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013401 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013402 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013403 return NULL;
13404 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013405 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013406 void *_opt_var;
13407 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013408 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013409 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010013410 (a = _gather_123_rule(p)) // ','.del_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013411 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013412 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013413 )
13414 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013415 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 +010013416 _res = a;
13417 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013418 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013419 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013420 return NULL;
13421 }
13422 goto done;
13423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013424 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013425 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013427 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013428 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013429 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013430 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013431 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013432}
13433
13434// del_target:
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013435// | t_primary '.' NAME !t_lookahead
13436// | t_primary '[' slices ']' !t_lookahead
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013437// | del_t_atom
13438static expr_ty
13439del_target_rule(Parser *p)
13440{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013441 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013443 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013444 return NULL;
13445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013446 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013447 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13448 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013449 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013451 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013452 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13453 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013454 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013455 return NULL;
13456 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013457 int _start_lineno = p->tokens[_mark]->lineno;
13458 UNUSED(_start_lineno); // Only used by EXTRA macro
13459 int _start_col_offset = p->tokens[_mark]->col_offset;
13460 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013461 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013462 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013463 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013464 return NULL;
13465 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013466 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 +010013467 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013468 expr_ty a;
13469 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013470 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013471 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013472 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013473 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013474 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013475 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013476 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013477 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013478 )
13479 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013480 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 +010013481 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13482 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013484 return NULL;
13485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013486 int _end_lineno = _token->end_lineno;
13487 UNUSED(_end_lineno); // Only used by EXTRA macro
13488 int _end_col_offset = _token->end_col_offset;
13489 UNUSED(_end_col_offset); // Only used by EXTRA macro
13490 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13491 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013492 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013493 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013494 return NULL;
13495 }
13496 goto done;
13497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013498 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013499 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013501 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013502 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013504 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013505 return NULL;
13506 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013507 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 +010013508 Token * _literal;
13509 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013510 expr_ty a;
13511 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013512 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013513 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013514 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013515 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013516 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013517 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013518 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013519 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013520 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013521 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013522 )
13523 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013524 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 +010013525 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13526 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013527 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013528 return NULL;
13529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013530 int _end_lineno = _token->end_lineno;
13531 UNUSED(_end_lineno); // Only used by EXTRA macro
13532 int _end_col_offset = _token->end_col_offset;
13533 UNUSED(_end_col_offset); // Only used by EXTRA macro
13534 _res = _Py_Subscript ( a , b , Del , EXTRA );
13535 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013536 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013537 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013538 return NULL;
13539 }
13540 goto done;
13541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013542 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013543 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013545 }
13546 { // del_t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013547 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013548 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013549 return NULL;
13550 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013551 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 +010013552 expr_ty del_t_atom_var;
13553 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013554 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013555 )
13556 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013557 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 +010013558 _res = del_t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013559 goto done;
13560 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013561 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013562 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013564 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013565 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013566 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013567 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013568 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013569 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013570}
13571
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013572// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013573static expr_ty
13574del_t_atom_rule(Parser *p)
13575{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013576 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013577 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013578 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013579 return NULL;
13580 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013581 expr_ty _res = NULL;
13582 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013583 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13584 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013585 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013586 return NULL;
13587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013588 int _start_lineno = p->tokens[_mark]->lineno;
13589 UNUSED(_start_lineno); // Only used by EXTRA macro
13590 int _start_col_offset = p->tokens[_mark]->col_offset;
13591 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013592 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013593 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013594 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013595 return NULL;
13596 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013597 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013598 expr_ty a;
13599 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013600 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013601 )
13602 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013603 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 +010013604 _res = _PyPegen_set_expr_context ( p , a , Del );
13605 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013606 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013607 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013608 return NULL;
13609 }
13610 goto done;
13611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013612 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013613 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030013614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013615 }
13616 { // '(' del_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013618 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013619 return NULL;
13620 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013621 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 +010013622 Token * _literal;
13623 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013624 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013625 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013626 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013627 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013628 (a = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013629 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013630 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013631 )
13632 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013633 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 +010013634 _res = _PyPegen_set_expr_context ( p , a , Del );
13635 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013636 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013637 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013638 return NULL;
13639 }
13640 goto done;
13641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013642 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013643 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013645 }
13646 { // '(' del_targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013647 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013648 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013649 return NULL;
13650 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013651 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 +010013652 Token * _literal;
13653 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013654 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013655 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013656 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013657 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013658 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013659 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013660 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013661 )
13662 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013663 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 +010013664 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13665 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013666 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013667 return NULL;
13668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013669 int _end_lineno = _token->end_lineno;
13670 UNUSED(_end_lineno); // Only used by EXTRA macro
13671 int _end_col_offset = _token->end_col_offset;
13672 UNUSED(_end_col_offset); // Only used by EXTRA macro
13673 _res = _Py_Tuple ( a , Del , EXTRA );
13674 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013675 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013676 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013677 return NULL;
13678 }
13679 goto done;
13680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013681 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013682 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013684 }
13685 { // '[' del_targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013686 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013687 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013688 return NULL;
13689 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013690 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 +010013691 Token * _literal;
13692 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013693 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013694 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013695 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013696 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013697 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013698 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013699 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013700 )
13701 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013702 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 +010013703 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13704 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013705 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013706 return NULL;
13707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013708 int _end_lineno = _token->end_lineno;
13709 UNUSED(_end_lineno); // Only used by EXTRA macro
13710 int _end_col_offset = _token->end_col_offset;
13711 UNUSED(_end_col_offset); // Only used by EXTRA macro
13712 _res = _Py_List ( a , Del , EXTRA );
13713 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013714 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013715 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013716 return NULL;
13717 }
13718 goto done;
13719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013720 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013721 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013724 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013725 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013726 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013727 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013728}
13729
13730// targets: ','.target+ ','?
13731static asdl_seq*
13732targets_rule(Parser *p)
13733{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013734 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013735 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013736 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013737 return NULL;
13738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013739 asdl_seq* _res = NULL;
13740 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013741 { // ','.target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013742 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013743 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013744 return NULL;
13745 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013746 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013747 void *_opt_var;
13748 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013749 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013750 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010013751 (a = _gather_125_rule(p)) // ','.target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013752 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013753 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013754 )
13755 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013756 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013757 _res = a;
13758 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013759 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013760 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013761 return NULL;
13762 }
13763 goto done;
13764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013765 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013766 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013769 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013770 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013771 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013772 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013773}
13774
13775// target:
13776// | t_primary '.' NAME !t_lookahead
13777// | t_primary '[' slices ']' !t_lookahead
13778// | t_atom
13779static expr_ty
13780target_rule(Parser *p)
13781{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013782 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013783 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013784 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013785 return NULL;
13786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013787 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013788 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13789 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013790 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013792 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013793 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13794 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013796 return NULL;
13797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013798 int _start_lineno = p->tokens[_mark]->lineno;
13799 UNUSED(_start_lineno); // Only used by EXTRA macro
13800 int _start_col_offset = p->tokens[_mark]->col_offset;
13801 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013802 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013803 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013804 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013805 return NULL;
13806 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013807 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 +010013808 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013809 expr_ty a;
13810 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013811 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013812 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013813 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013814 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013815 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013816 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013817 &&
13818 _PyPegen_lookahead(0, t_lookahead_rule, p)
13819 )
13820 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013821 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 +010013822 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13823 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013824 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013825 return NULL;
13826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013827 int _end_lineno = _token->end_lineno;
13828 UNUSED(_end_lineno); // Only used by EXTRA macro
13829 int _end_col_offset = _token->end_col_offset;
13830 UNUSED(_end_col_offset); // Only used by EXTRA macro
13831 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13832 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013833 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013834 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013835 return NULL;
13836 }
13837 goto done;
13838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013839 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013840 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013842 }
13843 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013844 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013845 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013846 return NULL;
13847 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013848 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 +010013849 Token * _literal;
13850 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013851 expr_ty a;
13852 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013853 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013854 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013855 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013856 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013857 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013858 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013859 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013860 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013861 &&
13862 _PyPegen_lookahead(0, t_lookahead_rule, p)
13863 )
13864 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013865 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 +010013866 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13867 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013869 return NULL;
13870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013871 int _end_lineno = _token->end_lineno;
13872 UNUSED(_end_lineno); // Only used by EXTRA macro
13873 int _end_col_offset = _token->end_col_offset;
13874 UNUSED(_end_col_offset); // Only used by EXTRA macro
13875 _res = _Py_Subscript ( a , b , Store , EXTRA );
13876 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013877 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013878 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013879 return NULL;
13880 }
13881 goto done;
13882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013883 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013884 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013886 }
13887 { // t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013889 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013890 return NULL;
13891 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013892 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013893 expr_ty t_atom_var;
13894 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013895 (t_atom_var = t_atom_rule(p)) // t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013896 )
13897 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013898 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013899 _res = t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013900 goto done;
13901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013902 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013903 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013906 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013907 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013908 _PyPegen_insert_memo(p, _mark, target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013909 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013910 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013911}
13912
13913// Left-recursive
13914// t_primary:
13915// | t_primary '.' NAME &t_lookahead
13916// | t_primary '[' slices ']' &t_lookahead
13917// | t_primary genexp &t_lookahead
13918// | t_primary '(' arguments? ')' &t_lookahead
13919// | atom &t_lookahead
13920static expr_ty t_primary_raw(Parser *);
13921static expr_ty
13922t_primary_rule(Parser *p)
13923{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013924 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013925 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013926 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
13927 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013928 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013930 int _mark = p->mark;
13931 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013932 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013933 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013934 if (tmpvar_8) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013935 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013936 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013938 p->mark = _mark;
13939 void *_raw = t_primary_raw(p);
13940 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013941 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013942 _resmark = p->mark;
13943 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013945 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013946 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013947 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013948}
13949static expr_ty
13950t_primary_raw(Parser *p)
13951{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013952 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013953 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013954 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013955 return NULL;
13956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013957 expr_ty _res = NULL;
13958 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013959 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13960 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013962 return NULL;
13963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013964 int _start_lineno = p->tokens[_mark]->lineno;
13965 UNUSED(_start_lineno); // Only used by EXTRA macro
13966 int _start_col_offset = p->tokens[_mark]->col_offset;
13967 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013968 { // t_primary '.' NAME &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013969 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013970 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013971 return NULL;
13972 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013973 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 +010013974 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013975 expr_ty a;
13976 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013977 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013978 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013979 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013980 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013981 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013982 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013983 &&
13984 _PyPegen_lookahead(1, t_lookahead_rule, p)
13985 )
13986 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013987 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 +010013988 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13989 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013990 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013991 return NULL;
13992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013993 int _end_lineno = _token->end_lineno;
13994 UNUSED(_end_lineno); // Only used by EXTRA macro
13995 int _end_col_offset = _token->end_col_offset;
13996 UNUSED(_end_col_offset); // Only used by EXTRA macro
13997 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
13998 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013999 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014000 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014001 return NULL;
14002 }
14003 goto done;
14004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014005 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014006 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014008 }
14009 { // t_primary '[' slices ']' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014010 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014011 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014012 return NULL;
14013 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014014 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 +010014015 Token * _literal;
14016 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014017 expr_ty a;
14018 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014019 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014020 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014021 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014022 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014023 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014024 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014025 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014026 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014027 &&
14028 _PyPegen_lookahead(1, t_lookahead_rule, p)
14029 )
14030 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014031 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 +010014032 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14033 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014034 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014035 return NULL;
14036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014037 int _end_lineno = _token->end_lineno;
14038 UNUSED(_end_lineno); // Only used by EXTRA macro
14039 int _end_col_offset = _token->end_col_offset;
14040 UNUSED(_end_col_offset); // Only used by EXTRA macro
14041 _res = _Py_Subscript ( a , b , Load , EXTRA );
14042 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014043 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014044 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014045 return NULL;
14046 }
14047 goto done;
14048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014049 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014050 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014052 }
14053 { // t_primary genexp &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014054 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014055 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014056 return NULL;
14057 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014058 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 +010014059 expr_ty a;
14060 expr_ty b;
14061 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014062 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014063 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014064 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014065 &&
14066 _PyPegen_lookahead(1, t_lookahead_rule, p)
14067 )
14068 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014069 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 +010014070 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14071 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014072 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014073 return NULL;
14074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014075 int _end_lineno = _token->end_lineno;
14076 UNUSED(_end_lineno); // Only used by EXTRA macro
14077 int _end_col_offset = _token->end_col_offset;
14078 UNUSED(_end_col_offset); // Only used by EXTRA macro
14079 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
14080 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014081 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014082 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014083 return NULL;
14084 }
14085 goto done;
14086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014087 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014088 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014090 }
14091 { // t_primary '(' arguments? ')' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014092 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014093 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014094 return NULL;
14095 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014096 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 +010014097 Token * _literal;
14098 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014099 expr_ty a;
14100 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014101 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014102 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014103 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014104 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014105 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014106 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014107 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014108 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014109 &&
14110 _PyPegen_lookahead(1, t_lookahead_rule, p)
14111 )
14112 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014113 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 +010014114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14115 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014116 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014117 return NULL;
14118 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014119 int _end_lineno = _token->end_lineno;
14120 UNUSED(_end_lineno); // Only used by EXTRA macro
14121 int _end_col_offset = _token->end_col_offset;
14122 UNUSED(_end_col_offset); // Only used by EXTRA macro
14123 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14124 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014125 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014126 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014127 return NULL;
14128 }
14129 goto done;
14130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014131 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014132 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014134 }
14135 { // atom &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014136 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014137 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014138 return NULL;
14139 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014140 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 +010014141 expr_ty a;
14142 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014143 (a = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014144 &&
14145 _PyPegen_lookahead(1, t_lookahead_rule, p)
14146 )
14147 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014148 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 +010014149 _res = a;
14150 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014151 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014152 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014153 return NULL;
14154 }
14155 goto done;
14156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014157 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014158 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014160 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014161 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014162 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014163 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014164 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014165}
14166
14167// t_lookahead: '(' | '[' | '.'
14168static void *
14169t_lookahead_rule(Parser *p)
14170{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014171 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014172 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014173 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014174 return NULL;
14175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014176 void * _res = NULL;
14177 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014178 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014179 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014180 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014181 return NULL;
14182 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014183 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014184 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014185 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014186 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014187 )
14188 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014189 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014190 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014191 goto done;
14192 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014193 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014194 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014196 }
14197 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014198 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014199 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014200 return NULL;
14201 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014202 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014203 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014204 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014205 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014206 )
14207 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014208 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014209 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014210 goto done;
14211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014212 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014213 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014215 }
14216 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014218 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014219 return NULL;
14220 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014221 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014222 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014223 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014224 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014225 )
14226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014227 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014228 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014229 goto done;
14230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014231 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014232 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014235 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014236 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014237 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014238 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014239}
14240
14241// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14242static expr_ty
14243t_atom_rule(Parser *p)
14244{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014245 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014246 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014247 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014248 return NULL;
14249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014250 expr_ty _res = NULL;
14251 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014252 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14253 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014254 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014255 return NULL;
14256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014257 int _start_lineno = p->tokens[_mark]->lineno;
14258 UNUSED(_start_lineno); // Only used by EXTRA macro
14259 int _start_col_offset = p->tokens[_mark]->col_offset;
14260 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014261 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014262 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014263 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014264 return NULL;
14265 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014266 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014267 expr_ty a;
14268 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014269 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014270 )
14271 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014272 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014273 _res = _PyPegen_set_expr_context ( p , a , Store );
14274 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014275 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014276 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014277 return NULL;
14278 }
14279 goto done;
14280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014281 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014282 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014284 }
14285 { // '(' target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014286 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014287 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014288 return NULL;
14289 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014290 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014291 Token * _literal;
14292 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014293 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014294 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014295 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014296 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014297 (a = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014298 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014299 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014300 )
14301 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014302 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014303 _res = _PyPegen_set_expr_context ( p , a , Store );
14304 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014305 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014306 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014307 return NULL;
14308 }
14309 goto done;
14310 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014311 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014312 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014314 }
14315 { // '(' targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014316 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014317 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014318 return NULL;
14319 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014320 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014321 Token * _literal;
14322 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014323 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014324 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014325 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014326 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014327 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014328 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014329 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014330 )
14331 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014332 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014333 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14334 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014335 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014336 return NULL;
14337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014338 int _end_lineno = _token->end_lineno;
14339 UNUSED(_end_lineno); // Only used by EXTRA macro
14340 int _end_col_offset = _token->end_col_offset;
14341 UNUSED(_end_col_offset); // Only used by EXTRA macro
14342 _res = _Py_Tuple ( b , Store , EXTRA );
14343 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014344 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014345 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014346 return NULL;
14347 }
14348 goto done;
14349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014350 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014351 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014353 }
14354 { // '[' targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014355 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014356 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014357 return NULL;
14358 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014359 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014360 Token * _literal;
14361 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014362 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014363 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014364 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014365 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014366 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014367 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014368 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014369 )
14370 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014371 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014372 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14373 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014374 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014375 return NULL;
14376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014377 int _end_lineno = _token->end_lineno;
14378 UNUSED(_end_lineno); // Only used by EXTRA macro
14379 int _end_col_offset = _token->end_col_offset;
14380 UNUSED(_end_col_offset); // Only used by EXTRA macro
14381 _res = _Py_List ( b , Store , EXTRA );
14382 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014383 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014384 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014385 return NULL;
14386 }
14387 goto done;
14388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014389 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014390 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014393 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014394 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014395 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014396 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014397}
14398
14399// incorrect_arguments:
14400// | args ',' '*'
14401// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014402// | args for_if_clauses
14403// | args ',' expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014404// | args ',' args
14405static void *
14406incorrect_arguments_rule(Parser *p)
14407{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014408 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014409 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014411 return NULL;
14412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014413 void * _res = NULL;
14414 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014415 { // args ',' '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014416 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014417 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014418 return NULL;
14419 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014420 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014421 Token * _literal;
14422 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014423 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014424 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014425 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014426 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014427 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014428 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014429 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014430 )
14431 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014432 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014433 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14434 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014435 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014436 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014437 return NULL;
14438 }
14439 goto done;
14440 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014441 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014442 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014444 }
14445 { // expression for_if_clauses ',' [args | expression for_if_clauses]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014446 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014447 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014448 return NULL;
14449 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014450 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 +010014451 Token * _literal;
14452 void *_opt_var;
14453 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014454 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014455 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014456 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014457 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014458 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014459 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014460 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014461 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014462 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014463 (_opt_var = _tmp_127_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014464 )
14465 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014466 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 +030014467 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014468 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014469 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014470 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014471 return NULL;
14472 }
14473 goto done;
14474 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014475 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014476 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014478 }
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014479 { // args for_if_clauses
14480 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014481 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014482 return NULL;
14483 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014484 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 -070014485 expr_ty a;
14486 asdl_seq* for_if_clauses_var;
14487 if (
14488 (a = args_rule(p)) // args
14489 &&
14490 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14491 )
14492 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014493 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 -070014494 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14495 if (_res == NULL && PyErr_Occurred()) {
14496 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014497 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014498 return NULL;
14499 }
14500 goto done;
14501 }
14502 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014503 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014505 }
14506 { // args ',' expression for_if_clauses
14507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014508 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014509 return NULL;
14510 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014511 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 -070014512 Token * _literal;
14513 expr_ty a;
14514 expr_ty args_var;
14515 asdl_seq* for_if_clauses_var;
14516 if (
14517 (args_var = args_rule(p)) // args
14518 &&
14519 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14520 &&
14521 (a = expression_rule(p)) // expression
14522 &&
14523 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14524 )
14525 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014526 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 -070014527 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14528 if (_res == NULL && PyErr_Occurred()) {
14529 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014530 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014531 return NULL;
14532 }
14533 goto done;
14534 }
14535 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014536 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014538 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014539 { // args ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014540 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014541 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014542 return NULL;
14543 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014544 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014545 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014546 expr_ty a;
14547 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014548 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014549 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014550 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014551 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014552 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014553 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014554 )
14555 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014556 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 +010014557 _res = _PyPegen_arguments_parsing_error ( p , a );
14558 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014559 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014560 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014561 return NULL;
14562 }
14563 goto done;
14564 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014565 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014566 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014569 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014570 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014571 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014572 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014573}
14574
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014575// invalid_kwarg: expression '='
14576static void *
14577invalid_kwarg_rule(Parser *p)
14578{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014579 D(p->level++);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014580 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014581 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014582 return NULL;
14583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014584 void * _res = NULL;
14585 int _mark = p->mark;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014586 { // expression '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014587 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014588 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014589 return NULL;
14590 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014591 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014592 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014593 expr_ty a;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014594 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014595 (a = expression_rule(p)) // expression
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014596 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014597 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014598 )
14599 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014600 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014601 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014602 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014603 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014604 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014605 return NULL;
14606 }
14607 goto done;
14608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014609 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014610 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014613 _res = NULL;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014614 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014615 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014616 return _res;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014617}
14618
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014619// invalid_named_expression: expression ':=' expression
14620static void *
14621invalid_named_expression_rule(Parser *p)
14622{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014623 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014624 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014625 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014626 return NULL;
14627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014628 void * _res = NULL;
14629 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014630 { // expression ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014631 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014632 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014633 return NULL;
14634 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014635 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 +010014636 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014637 expr_ty a;
14638 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014639 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014640 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014641 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014642 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014643 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014644 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014645 )
14646 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014647 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 +030014648 _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 +010014649 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014650 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014651 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014652 return NULL;
14653 }
14654 goto done;
14655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014656 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014657 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014660 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014661 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014662 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014663 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014664}
14665
14666// invalid_assignment:
Pablo Galindo102ca522020-06-28 00:40:41 +010014667// | invalid_ann_assign_target ':' expression
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014668// | star_named_expression ',' star_named_expressions* ':' expression
14669// | expression ':' expression
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014670// | ((star_targets '='))* star_expressions '='
14671// | ((star_targets '='))* yield_expr '='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014672// | star_expressions augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014673static void *
14674invalid_assignment_rule(Parser *p)
14675{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014676 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014677 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014678 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014679 return NULL;
14680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014681 void * _res = NULL;
14682 int _mark = p->mark;
Pablo Galindo102ca522020-06-28 00:40:41 +010014683 { // invalid_ann_assign_target ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014684 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014685 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014686 return NULL;
14687 }
Pablo Galindo102ca522020-06-28 00:40:41 +010014688 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 +010014689 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014690 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014691 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014692 if (
Pablo Galindo102ca522020-06-28 00:40:41 +010014693 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014694 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014695 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014696 &&
14697 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014698 )
14699 {
Pablo Galindo102ca522020-06-28 00:40:41 +010014700 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14701 _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 +010014702 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014703 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014704 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014705 return NULL;
14706 }
14707 goto done;
14708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014709 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014710 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo102ca522020-06-28 00:40:41 +010014711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014712 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014713 { // star_named_expression ',' star_named_expressions* ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014715 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014716 return NULL;
14717 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014718 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 +030014719 Token * _literal;
14720 Token * _literal_1;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014721 asdl_seq * _loop0_128_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014722 expr_ty a;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014723 expr_ty expression_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014724 if (
14725 (a = star_named_expression_rule(p)) // star_named_expression
14726 &&
14727 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14728 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014729 (_loop0_128_var = _loop0_128_rule(p)) // star_named_expressions*
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014730 &&
14731 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014732 &&
14733 (expression_var = expression_rule(p)) // expression
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014734 )
14735 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014736 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 +030014737 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014738 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014739 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014741 return NULL;
14742 }
14743 goto done;
14744 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014745 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014746 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014748 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014749 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014750 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014751 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014752 return NULL;
14753 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014754 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014755 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014756 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014757 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014758 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014759 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014760 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014761 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014762 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014763 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014764 )
14765 {
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014766 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 +030014767 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014768 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014769 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014770 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014771 return NULL;
14772 }
14773 goto done;
14774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014775 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014776 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030014777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014778 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014779 { // ((star_targets '='))* star_expressions '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014780 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014781 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014782 return NULL;
14783 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014784 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 +010014785 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014786 asdl_seq * _loop0_129_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014787 expr_ty a;
14788 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014789 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014790 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014791 (a = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014792 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014793 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014794 )
14795 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014796 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 +030014797 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo16ab0702020-05-15 02:04:52 +010014798 if (_res == NULL && PyErr_Occurred()) {
14799 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014800 D(p->level--);
Pablo Galindo16ab0702020-05-15 02:04:52 +010014801 return NULL;
14802 }
14803 goto done;
14804 }
14805 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014806 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14808 }
14809 { // ((star_targets '='))* yield_expr '='
14810 if (p->error_indicator) {
14811 D(p->level--);
14812 return NULL;
14813 }
14814 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14815 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014816 asdl_seq * _loop0_130_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014817 expr_ty a;
14818 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014819 (_loop0_130_var = _loop0_130_rule(p)) // ((star_targets '='))*
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014820 &&
14821 (a = yield_expr_rule(p)) // yield_expr
14822 &&
14823 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14824 )
14825 {
14826 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14827 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14828 if (_res == NULL && PyErr_Occurred()) {
14829 p->error_indicator = 1;
14830 D(p->level--);
14831 return NULL;
14832 }
14833 goto done;
14834 }
14835 p->mark = _mark;
14836 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014838 }
14839 { // star_expressions augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014840 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014841 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014842 return NULL;
14843 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014844 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014845 void *_tmp_131_var;
Pablo Galindo16ab0702020-05-15 02:04:52 +010014846 expr_ty a;
14847 AugOperator* augassign_var;
14848 if (
14849 (a = star_expressions_rule(p)) // star_expressions
14850 &&
14851 (augassign_var = augassign_rule(p)) // augassign
Pablo Galindo2b74c832020-04-27 18:02:07 +010014852 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010014853 (_tmp_131_var = _tmp_131_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014854 )
14855 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014856 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 +010014857 _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 +010014858 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014859 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014860 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014861 return NULL;
14862 }
14863 goto done;
14864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014865 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014866 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014869 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014870 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014871 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014872 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014873}
14874
Pablo Galindo102ca522020-06-28 00:40:41 +010014875// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
14876static expr_ty
14877invalid_ann_assign_target_rule(Parser *p)
14878{
14879 D(p->level++);
14880 if (p->error_indicator) {
14881 D(p->level--);
14882 return NULL;
14883 }
14884 expr_ty _res = NULL;
14885 int _mark = p->mark;
14886 { // list
14887 if (p->error_indicator) {
14888 D(p->level--);
14889 return NULL;
14890 }
14891 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
14892 expr_ty list_var;
14893 if (
14894 (list_var = list_rule(p)) // list
14895 )
14896 {
14897 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
14898 _res = list_var;
14899 goto done;
14900 }
14901 p->mark = _mark;
14902 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
14904 }
14905 { // tuple
14906 if (p->error_indicator) {
14907 D(p->level--);
14908 return NULL;
14909 }
14910 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
14911 expr_ty tuple_var;
14912 if (
14913 (tuple_var = tuple_rule(p)) // tuple
14914 )
14915 {
14916 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
14917 _res = tuple_var;
14918 goto done;
14919 }
14920 p->mark = _mark;
14921 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
14923 }
14924 { // '(' invalid_ann_assign_target ')'
14925 if (p->error_indicator) {
14926 D(p->level--);
14927 return NULL;
14928 }
14929 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14930 Token * _literal;
14931 Token * _literal_1;
14932 expr_ty a;
14933 if (
14934 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14935 &&
14936 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
14937 &&
14938 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14939 )
14940 {
14941 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14942 _res = a;
14943 if (_res == NULL && PyErr_Occurred()) {
14944 p->error_indicator = 1;
14945 D(p->level--);
14946 return NULL;
14947 }
14948 goto done;
14949 }
14950 p->mark = _mark;
14951 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
14953 }
14954 _res = NULL;
14955 done:
14956 D(p->level--);
14957 return _res;
14958}
14959
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014960// invalid_del_stmt: 'del' star_expressions
14961static void *
14962invalid_del_stmt_rule(Parser *p)
14963{
14964 D(p->level++);
14965 if (p->error_indicator) {
14966 D(p->level--);
14967 return NULL;
14968 }
14969 void * _res = NULL;
14970 int _mark = p->mark;
14971 { // 'del' star_expressions
14972 if (p->error_indicator) {
14973 D(p->level--);
14974 return NULL;
14975 }
14976 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
14977 Token * _keyword;
14978 expr_ty a;
14979 if (
14980 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
14981 &&
14982 (a = star_expressions_rule(p)) // star_expressions
14983 )
14984 {
14985 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 +030014986 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030014987 if (_res == NULL && PyErr_Occurred()) {
14988 p->error_indicator = 1;
14989 D(p->level--);
14990 return NULL;
14991 }
14992 goto done;
14993 }
14994 p->mark = _mark;
14995 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
14996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
14997 }
14998 _res = NULL;
14999 done:
15000 D(p->level--);
15001 return _res;
15002}
15003
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015004// invalid_block: NEWLINE !INDENT
15005static void *
15006invalid_block_rule(Parser *p)
15007{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015008 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015009 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015010 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015011 return NULL;
15012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015013 void * _res = NULL;
15014 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015015 { // NEWLINE !INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015016 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015017 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015018 return NULL;
15019 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015020 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015021 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015022 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015023 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015024 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015025 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015026 )
15027 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015028 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 +010015029 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15030 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015031 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015032 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015033 return NULL;
15034 }
15035 goto done;
15036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015037 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015038 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015041 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015042 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015043 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015044 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015045}
15046
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015047// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015048static void *
15049invalid_comprehension_rule(Parser *p)
15050{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015051 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015054 return NULL;
15055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015056 void * _res = NULL;
15057 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015058 { // ('[' | '(' | '{') starred_expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015059 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015060 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015061 return NULL;
15062 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015063 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015064 void *_tmp_132_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015065 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015066 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015067 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015068 (_tmp_132_var = _tmp_132_rule(p)) // '[' | '(' | '{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015069 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015070 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015071 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015072 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015073 )
15074 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015075 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 +030015076 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015077 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015078 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015079 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015080 return NULL;
15081 }
15082 goto done;
15083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015084 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015085 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015088 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015089 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015090 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015091 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015092}
15093
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015094// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15095static void *
15096invalid_dict_comprehension_rule(Parser *p)
15097{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015098 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015100 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015101 return NULL;
15102 }
15103 void * _res = NULL;
15104 int _mark = p->mark;
15105 { // '{' '**' bitwise_or for_if_clauses '}'
15106 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015107 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015108 return NULL;
15109 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015110 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 -070015111 Token * _literal;
15112 Token * _literal_1;
15113 Token * a;
15114 expr_ty bitwise_or_var;
15115 asdl_seq* for_if_clauses_var;
15116 if (
15117 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15118 &&
15119 (a = _PyPegen_expect_token(p, 35)) // token='**'
15120 &&
15121 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15122 &&
15123 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15124 &&
15125 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15126 )
15127 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015128 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 -070015129 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15130 if (_res == NULL && PyErr_Occurred()) {
15131 p->error_indicator = 1;
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 goto done;
15136 }
15137 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015138 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015140 }
15141 _res = NULL;
15142 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015143 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070015144 return _res;
15145}
15146
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015147// invalid_parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -070015148// | param_no_default* (slash_with_default | param_with_default+) param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015149static void *
15150invalid_parameters_rule(Parser *p)
15151{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015152 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015153 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015154 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015155 return NULL;
15156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015157 void * _res = NULL;
15158 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015159 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015160 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015161 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015162 return NULL;
15163 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015164 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015165 asdl_seq * _loop0_133_var;
15166 void *_tmp_134_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015167 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015168 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015169 (_loop0_133_var = _loop0_133_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015170 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015171 (_tmp_134_var = _tmp_134_rule(p)) // slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015172 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015173 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015174 )
15175 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015176 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 +010015177 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15178 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015179 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015180 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015181 return NULL;
15182 }
15183 goto done;
15184 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015185 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015186 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15187 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 +010015188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015189 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015190 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015191 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015192 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015193}
15194
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015195// invalid_lambda_parameters:
15196// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15197static void *
15198invalid_lambda_parameters_rule(Parser *p)
15199{
15200 D(p->level++);
15201 if (p->error_indicator) {
15202 D(p->level--);
15203 return NULL;
15204 }
15205 void * _res = NULL;
15206 int _mark = p->mark;
15207 { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15208 if (p->error_indicator) {
15209 D(p->level--);
15210 return NULL;
15211 }
15212 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015213 asdl_seq * _loop0_135_var;
15214 void *_tmp_136_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015215 arg_ty lambda_param_no_default_var;
15216 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015217 (_loop0_135_var = _loop0_135_rule(p)) // lambda_param_no_default*
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015218 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015219 (_tmp_136_var = _tmp_136_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070015220 &&
15221 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15222 )
15223 {
15224 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"));
15225 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15226 if (_res == NULL && PyErr_Occurred()) {
15227 p->error_indicator = 1;
15228 D(p->level--);
15229 return NULL;
15230 }
15231 goto done;
15232 }
15233 p->mark = _mark;
15234 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15236 }
15237 _res = NULL;
15238 done:
15239 D(p->level--);
15240 return _res;
15241}
15242
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015243// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015244static void *
15245invalid_star_etc_rule(Parser *p)
15246{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015247 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015249 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015250 return NULL;
15251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015252 void * _res = NULL;
15253 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015254 { // '*' (')' | ',' (')' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015255 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015256 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015257 return NULL;
15258 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015259 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015260 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015261 void *_tmp_137_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015262 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015263 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015264 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015265 (_tmp_137_var = _tmp_137_rule(p)) // ')' | ',' (')' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015266 )
15267 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015268 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015269 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15270 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015271 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015272 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015273 return NULL;
15274 }
15275 goto done;
15276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015277 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015278 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015280 }
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015281 { // '*' ',' TYPE_COMMENT
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015282 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015283 D(p->level--);
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015284 return NULL;
15285 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015286 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 +030015287 Token * _literal;
15288 Token * _literal_1;
15289 Token * type_comment_var;
15290 if (
15291 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15292 &&
15293 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15294 &&
15295 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15296 )
15297 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015298 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 +030015299 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15300 if (_res == NULL && PyErr_Occurred()) {
15301 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015302 D(p->level--);
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015303 return NULL;
15304 }
15305 goto done;
15306 }
15307 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015308 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015310 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015311 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015312 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015313 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015314 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015315}
15316
15317// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15318static void *
15319invalid_lambda_star_etc_rule(Parser *p)
15320{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015321 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015322 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015323 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015324 return NULL;
15325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015326 void * _res = NULL;
15327 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015328 { // '*' (':' | ',' (':' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015329 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015330 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015331 return NULL;
15332 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015333 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015334 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015335 void *_tmp_138_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015336 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015337 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015338 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010015339 (_tmp_138_var = _tmp_138_rule(p)) // ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015340 )
15341 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015342 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 +010015343 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15344 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015345 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015346 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015347 return NULL;
15348 }
15349 goto done;
15350 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015351 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015352 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015355 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015356 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015357 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015358 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015359}
15360
Guido van Rossumc001c092020-04-30 12:12:19 -070015361// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15362static void *
15363invalid_double_type_comments_rule(Parser *p)
15364{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015365 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015367 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015368 return NULL;
15369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015370 void * _res = NULL;
15371 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015372 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015373 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015374 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015375 return NULL;
15376 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015377 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 +010015378 Token * indent_var;
15379 Token * newline_var;
15380 Token * newline_var_1;
15381 Token * type_comment_var;
15382 Token * type_comment_var_1;
Guido van Rossumc001c092020-04-30 12:12:19 -070015383 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015384 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015385 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015386 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015387 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015388 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015389 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015390 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015391 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015392 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015393 )
15394 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015395 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 +010015396 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15397 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015398 p->error_indicator = 1;
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 }
15402 goto done;
15403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015404 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015405 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015408 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015409 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015410 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015411 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015412}
15413
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015414// invalid_with_item: expression 'as' expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015415static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015416invalid_with_item_rule(Parser *p)
Shantanu27c0d9b2020-05-11 14:53:58 -070015417{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015418 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070015419 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015420 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015421 return NULL;
15422 }
15423 void * _res = NULL;
15424 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015425 { // expression 'as' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015426 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015427 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015428 return NULL;
15429 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015430 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15431 Token * _keyword;
Shantanu27c0d9b2020-05-11 14:53:58 -070015432 expr_ty a;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015433 expr_ty expression_var;
Shantanu27c0d9b2020-05-11 14:53:58 -070015434 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015435 (expression_var = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015436 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015437 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15438 &&
15439 (a = expression_rule(p)) // expression
Shantanu27c0d9b2020-05-11 14:53:58 -070015440 )
15441 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015442 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 +030015443 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Shantanu27c0d9b2020-05-11 14:53:58 -070015444 if (_res == NULL && PyErr_Occurred()) {
15445 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015446 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015447 return NULL;
15448 }
15449 goto done;
15450 }
15451 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015452 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15454 }
15455 _res = NULL;
15456 done:
15457 D(p->level--);
15458 return _res;
15459}
15460
15461// invalid_for_target: ASYNC? 'for' star_expressions
15462static void *
15463invalid_for_target_rule(Parser *p)
15464{
15465 D(p->level++);
15466 if (p->error_indicator) {
15467 D(p->level--);
15468 return NULL;
15469 }
15470 void * _res = NULL;
15471 int _mark = p->mark;
15472 { // ASYNC? 'for' star_expressions
15473 if (p->error_indicator) {
15474 D(p->level--);
15475 return NULL;
15476 }
15477 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15478 Token * _keyword;
15479 void *_opt_var;
15480 UNUSED(_opt_var); // Silence compiler warnings
15481 expr_ty a;
15482 if (
15483 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15484 &&
15485 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15486 &&
15487 (a = star_expressions_rule(p)) // star_expressions
15488 )
15489 {
15490 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 +030015491 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030015492 if (_res == NULL && PyErr_Occurred()) {
15493 p->error_indicator = 1;
15494 D(p->level--);
15495 return NULL;
15496 }
15497 goto done;
15498 }
15499 p->mark = _mark;
15500 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15502 }
15503 _res = NULL;
15504 done:
15505 D(p->level--);
15506 return _res;
15507}
15508
15509// invalid_group: '(' starred_expression ')'
15510static void *
15511invalid_group_rule(Parser *p)
15512{
15513 D(p->level++);
15514 if (p->error_indicator) {
15515 D(p->level--);
15516 return NULL;
15517 }
15518 void * _res = NULL;
15519 int _mark = p->mark;
15520 { // '(' starred_expression ')'
15521 if (p->error_indicator) {
15522 D(p->level--);
15523 return NULL;
15524 }
15525 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15526 Token * _literal;
15527 Token * _literal_1;
15528 expr_ty a;
15529 if (
15530 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15531 &&
15532 (a = starred_expression_rule(p)) // starred_expression
15533 &&
15534 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15535 )
15536 {
15537 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15538 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15539 if (_res == NULL && PyErr_Occurred()) {
15540 p->error_indicator = 1;
15541 D(p->level--);
15542 return NULL;
15543 }
15544 goto done;
15545 }
15546 p->mark = _mark;
15547 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070015549 }
15550 _res = NULL;
15551 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015552 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015553 return _res;
15554}
15555
Pablo Galindo275d7e12020-05-21 22:04:54 +010015556// invalid_import_from_targets: import_from_as_names ','
15557static void *
15558invalid_import_from_targets_rule(Parser *p)
15559{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015560 D(p->level++);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015561 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015562 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015563 return NULL;
15564 }
15565 void * _res = NULL;
15566 int _mark = p->mark;
15567 { // import_from_as_names ','
15568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015569 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015570 return NULL;
15571 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015572 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 +010015573 Token * _literal;
15574 asdl_seq* import_from_as_names_var;
15575 if (
15576 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15577 &&
15578 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15579 )
15580 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015581 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 +010015582 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15583 if (_res == NULL && PyErr_Occurred()) {
15584 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015585 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015586 return NULL;
15587 }
15588 goto done;
15589 }
15590 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015591 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015593 }
15594 _res = NULL;
15595 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015596 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015597 return _res;
15598}
15599
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015600// _loop0_1: NEWLINE
15601static asdl_seq *
15602_loop0_1_rule(Parser *p)
15603{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015604 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015605 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015606 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015607 return NULL;
15608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015609 void *_res = NULL;
15610 int _mark = p->mark;
15611 int _start_mark = p->mark;
15612 void **_children = PyMem_Malloc(sizeof(void *));
15613 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015614 p->error_indicator = 1;
15615 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015616 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015617 return NULL;
15618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015619 ssize_t _children_capacity = 1;
15620 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015621 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015622 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015623 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015624 return NULL;
15625 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015626 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015627 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015628 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015629 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015630 )
15631 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015632 _res = newline_var;
15633 if (_n == _children_capacity) {
15634 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015635 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15636 if (!_new_children) {
15637 p->error_indicator = 1;
15638 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015639 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015640 return NULL;
15641 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015642 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015644 _children[_n++] = _res;
15645 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015647 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015648 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015651 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15652 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015653 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015654 p->error_indicator = 1;
15655 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015656 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015657 return NULL;
15658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015659 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15660 PyMem_Free(_children);
15661 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015662 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015663 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015664}
15665
Guido van Rossumc001c092020-04-30 12:12:19 -070015666// _loop0_2: NEWLINE
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015667static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015668_loop0_2_rule(Parser *p)
15669{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015670 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015671 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015672 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015673 return NULL;
15674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015675 void *_res = NULL;
15676 int _mark = p->mark;
15677 int _start_mark = p->mark;
15678 void **_children = PyMem_Malloc(sizeof(void *));
15679 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015680 p->error_indicator = 1;
15681 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015682 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015683 return NULL;
15684 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015685 ssize_t _children_capacity = 1;
15686 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015687 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015688 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015689 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015690 return NULL;
15691 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015692 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015693 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015694 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015695 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015696 )
15697 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015698 _res = newline_var;
15699 if (_n == _children_capacity) {
15700 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015701 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15702 if (!_new_children) {
15703 p->error_indicator = 1;
15704 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015705 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015706 return NULL;
15707 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015708 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015710 _children[_n++] = _res;
15711 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015713 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015714 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015717 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15718 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015719 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015720 p->error_indicator = 1;
15721 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015722 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015723 return NULL;
15724 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015725 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15726 PyMem_Free(_children);
15727 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015728 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015729 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015730}
15731
15732// _loop0_4: ',' expression
15733static asdl_seq *
15734_loop0_4_rule(Parser *p)
15735{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015736 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015737 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015738 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015739 return NULL;
15740 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015741 void *_res = NULL;
15742 int _mark = p->mark;
15743 int _start_mark = p->mark;
15744 void **_children = PyMem_Malloc(sizeof(void *));
15745 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015746 p->error_indicator = 1;
15747 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015748 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015749 return NULL;
15750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015751 ssize_t _children_capacity = 1;
15752 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015753 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015754 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015755 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015756 return NULL;
15757 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015758 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015759 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015760 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015761 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015762 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015763 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015764 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015765 )
15766 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015767 _res = elem;
15768 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015769 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015770 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015771 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015772 return NULL;
15773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015774 if (_n == _children_capacity) {
15775 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015776 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15777 if (!_new_children) {
15778 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015783 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015784 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015785 _children[_n++] = _res;
15786 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015788 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015789 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015792 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15793 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015794 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015795 p->error_indicator = 1;
15796 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015797 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015798 return NULL;
15799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015800 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15801 PyMem_Free(_children);
15802 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015803 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015804 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015805}
15806
15807// _gather_3: expression _loop0_4
15808static asdl_seq *
15809_gather_3_rule(Parser *p)
15810{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015811 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015812 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015813 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015814 return NULL;
15815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015816 asdl_seq * _res = NULL;
15817 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015818 { // expression _loop0_4
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015820 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015821 return NULL;
15822 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015823 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 -070015824 expr_ty elem;
15825 asdl_seq * seq;
15826 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015827 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015828 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015829 (seq = _loop0_4_rule(p)) // _loop0_4
Guido van Rossumc001c092020-04-30 12:12:19 -070015830 )
15831 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015832 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 +010015833 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015834 goto done;
15835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015836 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015837 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015840 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015841 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015842 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015843 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015844}
15845
15846// _loop0_6: ',' expression
15847static asdl_seq *
15848_loop0_6_rule(Parser *p)
15849{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015850 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015851 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015852 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015853 return NULL;
15854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015855 void *_res = NULL;
15856 int _mark = p->mark;
15857 int _start_mark = p->mark;
15858 void **_children = PyMem_Malloc(sizeof(void *));
15859 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015860 p->error_indicator = 1;
15861 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015862 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015863 return NULL;
15864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015865 ssize_t _children_capacity = 1;
15866 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015867 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015868 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015869 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015870 return NULL;
15871 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015872 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015873 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015874 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015875 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015876 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015877 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015878 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015879 )
15880 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015881 _res = elem;
15882 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015883 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015884 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015885 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015886 return NULL;
15887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015888 if (_n == _children_capacity) {
15889 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015890 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15891 if (!_new_children) {
15892 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015897 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015899 _children[_n++] = _res;
15900 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015902 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015903 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
15904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015906 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15907 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015908 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015909 p->error_indicator = 1;
15910 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015911 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015912 return NULL;
15913 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015914 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15915 PyMem_Free(_children);
15916 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015917 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015918 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015919}
15920
15921// _gather_5: expression _loop0_6
15922static asdl_seq *
15923_gather_5_rule(Parser *p)
15924{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015925 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015926 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015927 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015928 return NULL;
15929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015930 asdl_seq * _res = NULL;
15931 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015932 { // expression _loop0_6
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015933 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015934 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015935 return NULL;
15936 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015937 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 -070015938 expr_ty elem;
15939 asdl_seq * seq;
15940 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015941 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015942 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015943 (seq = _loop0_6_rule(p)) // _loop0_6
Guido van Rossumc001c092020-04-30 12:12:19 -070015944 )
15945 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015946 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 +010015947 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015948 goto done;
15949 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015950 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015951 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
15952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015954 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015955 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015956 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015957 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015958}
15959
15960// _loop0_8: ',' expression
15961static asdl_seq *
15962_loop0_8_rule(Parser *p)
15963{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015964 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015966 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015967 return NULL;
15968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015969 void *_res = NULL;
15970 int _mark = p->mark;
15971 int _start_mark = p->mark;
15972 void **_children = PyMem_Malloc(sizeof(void *));
15973 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015974 p->error_indicator = 1;
15975 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015976 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015977 return NULL;
15978 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015979 ssize_t _children_capacity = 1;
15980 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015981 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015982 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015983 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015984 return NULL;
15985 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015986 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015987 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015988 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015989 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015990 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015991 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015992 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015993 )
15994 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015995 _res = elem;
15996 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015997 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015998 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015999 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016000 return NULL;
16001 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016002 if (_n == _children_capacity) {
16003 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016004 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16005 if (!_new_children) {
16006 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016011 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016013 _children[_n++] = _res;
16014 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016015 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016016 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016017 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016020 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16021 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016022 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016023 p->error_indicator = 1;
16024 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016025 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016026 return NULL;
16027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016028 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16029 PyMem_Free(_children);
16030 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016031 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016032 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016033}
16034
16035// _gather_7: expression _loop0_8
16036static asdl_seq *
16037_gather_7_rule(Parser *p)
16038{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016039 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016040 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016041 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016042 return NULL;
16043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016044 asdl_seq * _res = NULL;
16045 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016046 { // expression _loop0_8
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016047 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016048 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016049 return NULL;
16050 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016051 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 -070016052 expr_ty elem;
16053 asdl_seq * seq;
16054 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016055 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016056 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016057 (seq = _loop0_8_rule(p)) // _loop0_8
Guido van Rossumc001c092020-04-30 12:12:19 -070016058 )
16059 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016060 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 +010016061 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016062 goto done;
16063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016064 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016065 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016068 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016069 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016070 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016071 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016072}
16073
16074// _loop0_10: ',' expression
16075static asdl_seq *
16076_loop0_10_rule(Parser *p)
16077{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016078 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016080 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016081 return NULL;
16082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016083 void *_res = NULL;
16084 int _mark = p->mark;
16085 int _start_mark = p->mark;
16086 void **_children = PyMem_Malloc(sizeof(void *));
16087 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016088 p->error_indicator = 1;
16089 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016090 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016091 return NULL;
16092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016093 ssize_t _children_capacity = 1;
16094 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016095 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016096 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016097 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016098 return NULL;
16099 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016100 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016101 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016102 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016103 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016104 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016105 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016106 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016107 )
16108 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016109 _res = elem;
16110 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016111 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016112 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016113 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016114 return NULL;
16115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016116 if (_n == _children_capacity) {
16117 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016118 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16119 if (!_new_children) {
16120 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016125 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016126 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016127 _children[_n++] = _res;
16128 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016130 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016131 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016134 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16135 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016136 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016137 p->error_indicator = 1;
16138 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016139 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016140 return NULL;
16141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016142 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16143 PyMem_Free(_children);
16144 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016145 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016146 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016147}
16148
16149// _gather_9: expression _loop0_10
16150static asdl_seq *
16151_gather_9_rule(Parser *p)
16152{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016153 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016154 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016155 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016156 return NULL;
16157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016158 asdl_seq * _res = NULL;
16159 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016160 { // expression _loop0_10
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016161 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016162 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016163 return NULL;
16164 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016165 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 -070016166 expr_ty elem;
16167 asdl_seq * seq;
16168 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016169 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016170 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016171 (seq = _loop0_10_rule(p)) // _loop0_10
Guido van Rossumc001c092020-04-30 12:12:19 -070016172 )
16173 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016174 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 +010016175 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016176 goto done;
16177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016178 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016179 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016182 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016183 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016184 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016185 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016186}
16187
16188// _loop1_11: statement
16189static asdl_seq *
16190_loop1_11_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016191{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016192 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016193 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016194 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016195 return NULL;
16196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016197 void *_res = NULL;
16198 int _mark = p->mark;
16199 int _start_mark = p->mark;
16200 void **_children = PyMem_Malloc(sizeof(void *));
16201 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016202 p->error_indicator = 1;
16203 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016204 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016205 return NULL;
16206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016207 ssize_t _children_capacity = 1;
16208 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016209 { // statement
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016210 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016211 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016212 return NULL;
16213 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016214 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016215 asdl_seq* statement_var;
16216 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010016217 (statement_var = statement_rule(p)) // statement
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016218 )
16219 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016220 _res = statement_var;
16221 if (_n == _children_capacity) {
16222 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016223 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16224 if (!_new_children) {
16225 p->error_indicator = 1;
16226 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016227 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016228 return NULL;
16229 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016230 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016232 _children[_n++] = _res;
16233 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016235 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016236 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016238 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016239 if (_n == 0 || p->error_indicator) {
16240 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016241 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016242 return NULL;
16243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016244 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16245 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016246 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016247 p->error_indicator = 1;
16248 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016249 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016250 return NULL;
16251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016252 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16253 PyMem_Free(_children);
16254 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016255 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016256 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016257}
16258
Guido van Rossumc001c092020-04-30 12:12:19 -070016259// _loop0_13: ';' small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016260static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016261_loop0_13_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016262{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016263 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016264 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016265 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016266 return NULL;
16267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016268 void *_res = NULL;
16269 int _mark = p->mark;
16270 int _start_mark = p->mark;
16271 void **_children = PyMem_Malloc(sizeof(void *));
16272 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016273 p->error_indicator = 1;
16274 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016276 return NULL;
16277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016278 ssize_t _children_capacity = 1;
16279 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016280 { // ';' small_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016281 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016282 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016283 return NULL;
16284 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016285 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016286 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016287 stmt_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016288 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016289 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016290 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016291 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016292 )
16293 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016294 _res = elem;
16295 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016296 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016297 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016298 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016299 return NULL;
16300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016301 if (_n == _children_capacity) {
16302 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016303 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16304 if (!_new_children) {
16305 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016310 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016312 _children[_n++] = _res;
16313 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016315 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016316 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
16317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016319 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16320 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016321 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016322 p->error_indicator = 1;
16323 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016324 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016325 return NULL;
16326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016327 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16328 PyMem_Free(_children);
16329 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016330 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016331 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016332}
16333
Guido van Rossumc001c092020-04-30 12:12:19 -070016334// _gather_12: small_stmt _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016335static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016336_gather_12_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016337{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016338 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016339 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016340 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016341 return NULL;
16342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016343 asdl_seq * _res = NULL;
16344 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016345 { // small_stmt _loop0_13
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016346 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016347 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016348 return NULL;
16349 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016350 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 +010016351 stmt_ty elem;
16352 asdl_seq * seq;
16353 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016354 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016355 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016356 (seq = _loop0_13_rule(p)) // _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016357 )
16358 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016359 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 +010016360 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016361 goto done;
16362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016363 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016364 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
16365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016367 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016368 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016369 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016370 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016371}
16372
Guido van Rossumc001c092020-04-30 12:12:19 -070016373// _tmp_14: 'import' | 'from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016374static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016375_tmp_14_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016376{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016377 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016378 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016379 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016380 return NULL;
16381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016382 void * _res = NULL;
16383 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016384 { // 'import'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016385 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016386 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016387 return NULL;
16388 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016389 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016390 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016391 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016392 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016393 )
16394 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016395 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016396 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016397 goto done;
16398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016399 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016400 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016402 }
16403 { // 'from'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016404 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016405 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016406 return NULL;
16407 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016408 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016409 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016410 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016411 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016412 )
16413 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016414 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016415 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016416 goto done;
16417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016418 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016419 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016421 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016422 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016423 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016424 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016425 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016426}
16427
Guido van Rossumc001c092020-04-30 12:12:19 -070016428// _tmp_15: 'def' | '@' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016429static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016430_tmp_15_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016431{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016432 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016433 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016434 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016435 return NULL;
16436 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016437 void * _res = NULL;
16438 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016439 { // 'def'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016440 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016441 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016442 return NULL;
16443 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016444 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016445 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016446 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016447 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016448 )
16449 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016450 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016451 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016452 goto done;
16453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016454 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016455 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016457 }
16458 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016460 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016461 return NULL;
16462 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016463 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016464 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016465 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016466 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016467 )
16468 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016469 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016470 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016471 goto done;
16472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016473 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016474 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016476 }
16477 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016478 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016479 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016480 return NULL;
16481 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016482 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016483 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016484 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016485 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016486 )
16487 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016488 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016489 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016490 goto done;
16491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016492 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016493 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016495 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016496 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016497 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016498 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016499 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016500}
16501
Guido van Rossumc001c092020-04-30 12:12:19 -070016502// _tmp_16: 'class' | '@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016503static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016504_tmp_16_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016505{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016506 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016508 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016509 return NULL;
16510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016511 void * _res = NULL;
16512 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016513 { // 'class'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016514 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016515 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016516 return NULL;
16517 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016518 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016519 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016520 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030016521 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016522 )
16523 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016524 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016525 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016526 goto done;
16527 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016528 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016529 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016531 }
16532 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016533 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016534 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016535 return NULL;
16536 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016537 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016538 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016539 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016540 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016541 )
16542 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016543 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016544 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016545 goto done;
16546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016547 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016548 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016551 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016552 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016553 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016554 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016555}
16556
Guido van Rossumc001c092020-04-30 12:12:19 -070016557// _tmp_17: 'with' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016558static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016559_tmp_17_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016560{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016561 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016562 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016563 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016564 return NULL;
16565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016566 void * _res = NULL;
16567 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016568 { // 'with'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016569 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016570 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016571 return NULL;
16572 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016573 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016574 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016575 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016576 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016577 )
16578 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016579 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016580 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016581 goto done;
16582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016583 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016584 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016586 }
16587 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016588 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016589 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016590 return NULL;
16591 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016592 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016593 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016594 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016595 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016596 )
16597 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016598 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016599 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016600 goto done;
16601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016602 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016603 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016606 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016607 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016608 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016609 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016610}
16611
Guido van Rossumc001c092020-04-30 12:12:19 -070016612// _tmp_18: 'for' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016613static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016614_tmp_18_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016615{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016616 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016618 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016619 return NULL;
16620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016621 void * _res = NULL;
16622 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016623 { // 'for'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016624 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016625 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016626 return NULL;
16627 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016628 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016629 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016630 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016631 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016632 )
16633 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016634 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016635 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016636 goto done;
16637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016638 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016639 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016641 }
16642 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016643 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016644 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016645 return NULL;
16646 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016647 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016648 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016649 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016650 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016651 )
16652 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016653 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016654 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016655 goto done;
16656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016657 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016658 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016661 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016662 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016663 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016664 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016665}
16666
Guido van Rossumc001c092020-04-30 12:12:19 -070016667// _tmp_19: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016668static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016669_tmp_19_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016670{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016671 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016672 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016673 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016674 return NULL;
16675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016676 void * _res = NULL;
16677 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016678 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016679 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016680 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016681 return NULL;
16682 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016683 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016684 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016685 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016686 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016687 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016688 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016689 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016690 )
16691 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016692 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 +010016693 _res = d;
16694 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016695 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016696 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016697 return NULL;
16698 }
16699 goto done;
16700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016701 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016702 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016705 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016706 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016707 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016708 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016709}
16710
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016711// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016712static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016713_tmp_20_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016714{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016715 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016717 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016718 return NULL;
16719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016720 void * _res = NULL;
16721 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016722 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016723 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016724 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016725 return NULL;
16726 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016727 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016728 Token * _literal;
16729 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016730 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016731 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016732 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016733 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016734 (b = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016735 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016736 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016737 )
16738 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016739 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 +010016740 _res = b;
16741 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016742 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016743 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016744 return NULL;
16745 }
16746 goto done;
16747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016748 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016749 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016751 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016752 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016753 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016754 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016755 return NULL;
16756 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016757 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 +030016758 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016759 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016760 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016761 )
16762 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016763 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 +030016764 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016765 goto done;
16766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016767 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016768 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016771 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016772 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016773 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016774 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016775}
16776
Guido van Rossumc001c092020-04-30 12:12:19 -070016777// _tmp_21: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016778static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016779_tmp_21_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016780{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016781 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016782 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016783 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016784 return NULL;
16785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016786 void * _res = NULL;
16787 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016788 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016789 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016790 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016791 return NULL;
16792 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016793 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016794 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016795 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016796 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016797 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016798 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016799 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016800 )
16801 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016802 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 +010016803 _res = d;
16804 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016805 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016806 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016807 return NULL;
16808 }
16809 goto done;
16810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016811 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016812 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016815 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016816 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016817 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016818 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016819}
16820
Guido van Rossumc001c092020-04-30 12:12:19 -070016821// _loop1_22: (star_targets '=')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016822static asdl_seq *
16823_loop1_22_rule(Parser *p)
16824{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016825 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016826 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016827 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016828 return NULL;
16829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016830 void *_res = NULL;
16831 int _mark = p->mark;
16832 int _start_mark = p->mark;
16833 void **_children = PyMem_Malloc(sizeof(void *));
16834 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016835 p->error_indicator = 1;
16836 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016837 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016838 return NULL;
16839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016840 ssize_t _children_capacity = 1;
16841 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016842 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016843 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016844 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016845 return NULL;
16846 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016847 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010016848 void *_tmp_139_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016849 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010016850 (_tmp_139_var = _tmp_139_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016851 )
16852 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010016853 _res = _tmp_139_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016854 if (_n == _children_capacity) {
16855 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016856 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16857 if (!_new_children) {
16858 p->error_indicator = 1;
16859 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016860 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016861 return NULL;
16862 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016863 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016865 _children[_n++] = _res;
16866 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016868 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016869 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
16870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016872 if (_n == 0 || p->error_indicator) {
16873 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016874 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016875 return NULL;
16876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016877 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16878 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016879 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016880 p->error_indicator = 1;
16881 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016882 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016883 return NULL;
16884 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016885 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16886 PyMem_Free(_children);
16887 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016888 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016889 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016890}
16891
Guido van Rossumc001c092020-04-30 12:12:19 -070016892// _tmp_23: yield_expr | star_expressions
16893static void *
16894_tmp_23_rule(Parser *p)
16895{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016896 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016897 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016898 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016899 return NULL;
16900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016901 void * _res = NULL;
16902 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016903 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016905 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016906 return NULL;
16907 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016908 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 -070016909 expr_ty yield_expr_var;
16910 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016911 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016912 )
16913 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016914 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 +010016915 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016916 goto done;
16917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016918 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016919 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016921 }
16922 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016923 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016924 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016925 return NULL;
16926 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016927 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 -070016928 expr_ty star_expressions_var;
16929 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016930 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016931 )
16932 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016933 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 +010016934 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016935 goto done;
16936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016937 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016938 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016941 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016942 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016943 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016944 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016945}
16946
16947// _tmp_24: yield_expr | star_expressions
16948static void *
16949_tmp_24_rule(Parser *p)
16950{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016951 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016952 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016953 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016954 return NULL;
16955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016956 void * _res = NULL;
16957 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016958 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016959 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016960 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016961 return NULL;
16962 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016963 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 -070016964 expr_ty yield_expr_var;
16965 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016966 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016967 )
16968 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016969 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 +010016970 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016971 goto done;
16972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016973 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016974 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
16975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016976 }
16977 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016978 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016979 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016980 return NULL;
16981 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016982 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 -070016983 expr_ty star_expressions_var;
16984 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016985 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016986 )
16987 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016988 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 +010016989 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016990 goto done;
16991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016992 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016993 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
16994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016995 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016996 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016997 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016998 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016999 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017000}
17001
17002// _loop0_26: ',' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017003static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017004_loop0_26_rule(Parser *p)
17005{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017006 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017007 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017008 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017009 return NULL;
17010 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017011 void *_res = NULL;
17012 int _mark = p->mark;
17013 int _start_mark = p->mark;
17014 void **_children = PyMem_Malloc(sizeof(void *));
17015 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017016 p->error_indicator = 1;
17017 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017018 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017019 return NULL;
17020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017021 ssize_t _children_capacity = 1;
17022 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017023 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017024 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017025 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017026 return NULL;
17027 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017028 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017029 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017030 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017031 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017032 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017033 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017034 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017035 )
17036 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017037 _res = elem;
17038 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017039 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017040 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017041 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017042 return NULL;
17043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017044 if (_n == _children_capacity) {
17045 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017046 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17047 if (!_new_children) {
17048 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017053 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017055 _children[_n++] = _res;
17056 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017058 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017059 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017062 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17063 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017064 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017065 p->error_indicator = 1;
17066 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017067 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017068 return NULL;
17069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017070 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17071 PyMem_Free(_children);
17072 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017073 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017074 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017075}
17076
17077// _gather_25: NAME _loop0_26
17078static asdl_seq *
17079_gather_25_rule(Parser *p)
17080{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017081 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017082 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017083 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017084 return NULL;
17085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017086 asdl_seq * _res = NULL;
17087 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017088 { // NAME _loop0_26
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017089 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017090 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017091 return NULL;
17092 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017093 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 -070017094 expr_ty elem;
17095 asdl_seq * seq;
17096 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017097 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017098 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017099 (seq = _loop0_26_rule(p)) // _loop0_26
Guido van Rossumc001c092020-04-30 12:12:19 -070017100 )
17101 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017102 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 +010017103 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017104 goto done;
17105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017106 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017107 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017110 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017111 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017112 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017113 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017114}
17115
17116// _loop0_28: ',' NAME
17117static asdl_seq *
17118_loop0_28_rule(Parser *p)
17119{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017120 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017121 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017122 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017123 return NULL;
17124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017125 void *_res = NULL;
17126 int _mark = p->mark;
17127 int _start_mark = p->mark;
17128 void **_children = PyMem_Malloc(sizeof(void *));
17129 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017130 p->error_indicator = 1;
17131 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017132 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017133 return NULL;
17134 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017135 ssize_t _children_capacity = 1;
17136 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017137 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017138 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017139 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017140 return NULL;
17141 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017142 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017143 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017144 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070017145 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017146 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017147 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017148 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017149 )
17150 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017151 _res = elem;
17152 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017153 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017154 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017155 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017156 return NULL;
17157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017158 if (_n == _children_capacity) {
17159 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017160 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17161 if (!_new_children) {
17162 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017167 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017169 _children[_n++] = _res;
17170 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017172 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017173 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017176 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17177 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017178 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017179 p->error_indicator = 1;
17180 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017181 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017182 return NULL;
17183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017184 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17185 PyMem_Free(_children);
17186 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017187 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017188 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017189}
17190
17191// _gather_27: NAME _loop0_28
17192static asdl_seq *
17193_gather_27_rule(Parser *p)
17194{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017195 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017196 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017197 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017198 return NULL;
17199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017200 asdl_seq * _res = NULL;
17201 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017202 { // NAME _loop0_28
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017203 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017204 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017205 return NULL;
17206 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017207 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 -070017208 expr_ty elem;
17209 asdl_seq * seq;
17210 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017211 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070017212 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017213 (seq = _loop0_28_rule(p)) // _loop0_28
Guido van Rossumc001c092020-04-30 12:12:19 -070017214 )
17215 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017216 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 +010017217 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070017218 goto done;
17219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017220 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017221 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017224 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017225 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017226 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017227 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017228}
17229
17230// _tmp_29: ',' expression
17231static void *
17232_tmp_29_rule(Parser *p)
17233{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017234 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017235 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017236 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017237 return NULL;
17238 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017239 void * _res = NULL;
17240 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017241 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017242 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017243 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017244 return NULL;
17245 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017246 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017247 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070017248 expr_ty z;
17249 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017250 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070017251 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017252 (z = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070017253 )
17254 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017255 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017256 _res = z;
17257 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070017258 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017259 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017260 return NULL;
17261 }
17262 goto done;
17263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017264 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017265 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017268 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070017269 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017270 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017271 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017272}
17273
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017274// _tmp_30: ';' | NEWLINE
17275static void *
17276_tmp_30_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017277{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017278 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017280 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017281 return NULL;
17282 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017283 void * _res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017284 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017285 { // ';'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017286 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017287 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017288 return NULL;
17289 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017290 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17291 Token * _literal;
17292 if (
17293 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Guido van Rossumc001c092020-04-30 12:12:19 -070017294 )
17295 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017296 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17297 _res = _literal;
17298 goto done;
Guido van Rossumc001c092020-04-30 12:12:19 -070017299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017300 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017301 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017303 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017304 { // NEWLINE
17305 if (p->error_indicator) {
17306 D(p->level--);
17307 return NULL;
17308 }
17309 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17310 Token * newline_var;
17311 if (
17312 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17313 )
17314 {
17315 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17316 _res = newline_var;
17317 goto done;
17318 }
17319 p->mark = _mark;
17320 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017322 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017323 _res = NULL;
17324 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017325 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017326 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070017327}
17328
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017329// _loop0_31: ('.' | '...')
Guido van Rossumc001c092020-04-30 12:12:19 -070017330static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017331_loop0_31_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070017332{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017333 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017335 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017336 return NULL;
17337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017338 void *_res = NULL;
17339 int _mark = p->mark;
17340 int _start_mark = p->mark;
17341 void **_children = PyMem_Malloc(sizeof(void *));
17342 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017343 p->error_indicator = 1;
17344 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017345 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017346 return NULL;
17347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017348 ssize_t _children_capacity = 1;
17349 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017350 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017351 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017352 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017353 return NULL;
17354 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017355 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017356 void *_tmp_140_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017357 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017358 (_tmp_140_var = _tmp_140_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070017359 )
17360 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017361 _res = _tmp_140_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017362 if (_n == _children_capacity) {
17363 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017364 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17365 if (!_new_children) {
17366 p->error_indicator = 1;
17367 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017368 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017369 return NULL;
17370 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017371 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017372 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017373 _children[_n++] = _res;
17374 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017376 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017377 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17379 }
17380 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17381 if (!_seq) {
17382 PyMem_Free(_children);
17383 p->error_indicator = 1;
17384 PyErr_NoMemory();
17385 D(p->level--);
17386 return NULL;
17387 }
17388 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17389 PyMem_Free(_children);
17390 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17391 D(p->level--);
17392 return _seq;
17393}
17394
17395// _loop1_32: ('.' | '...')
17396static asdl_seq *
17397_loop1_32_rule(Parser *p)
17398{
17399 D(p->level++);
17400 if (p->error_indicator) {
17401 D(p->level--);
17402 return NULL;
17403 }
17404 void *_res = NULL;
17405 int _mark = p->mark;
17406 int _start_mark = p->mark;
17407 void **_children = PyMem_Malloc(sizeof(void *));
17408 if (!_children) {
17409 p->error_indicator = 1;
17410 PyErr_NoMemory();
17411 D(p->level--);
17412 return NULL;
17413 }
17414 ssize_t _children_capacity = 1;
17415 ssize_t _n = 0;
17416 { // ('.' | '...')
17417 if (p->error_indicator) {
17418 D(p->level--);
17419 return NULL;
17420 }
17421 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017422 void *_tmp_141_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017423 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017424 (_tmp_141_var = _tmp_141_rule(p)) // '.' | '...'
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017425 )
17426 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010017427 _res = _tmp_141_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017428 if (_n == _children_capacity) {
17429 _children_capacity *= 2;
17430 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17431 if (!_new_children) {
17432 p->error_indicator = 1;
17433 PyErr_NoMemory();
17434 D(p->level--);
17435 return NULL;
17436 }
17437 _children = _new_children;
17438 }
17439 _children[_n++] = _res;
17440 _mark = p->mark;
17441 }
17442 p->mark = _mark;
17443 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017446 if (_n == 0 || p->error_indicator) {
17447 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017448 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017449 return NULL;
17450 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017451 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17452 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017453 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017454 p->error_indicator = 1;
17455 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017456 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017457 return NULL;
17458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017459 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17460 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017461 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017462 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017463 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017464}
17465
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017466// _loop0_34: ',' import_from_as_name
Guido van Rossumc001c092020-04-30 12:12:19 -070017467static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017468_loop0_34_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017469{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017470 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017471 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017472 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017473 return NULL;
17474 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017475 void *_res = NULL;
17476 int _mark = p->mark;
17477 int _start_mark = p->mark;
17478 void **_children = PyMem_Malloc(sizeof(void *));
17479 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017480 p->error_indicator = 1;
17481 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017482 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017483 return NULL;
17484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017485 ssize_t _children_capacity = 1;
17486 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017487 { // ',' import_from_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017488 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017489 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017490 return NULL;
17491 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017492 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 +010017493 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017494 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017495 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017496 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017497 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017498 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017499 )
17500 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017501 _res = elem;
17502 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017503 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017504 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017506 return NULL;
17507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017508 if (_n == _children_capacity) {
17509 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017510 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17511 if (!_new_children) {
17512 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017517 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017519 _children[_n++] = _res;
17520 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017521 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017522 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017523 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017525 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017526 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17527 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017528 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017529 p->error_indicator = 1;
17530 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017531 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017532 return NULL;
17533 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017534 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17535 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017536 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017537 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017538 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017539}
17540
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017541// _gather_33: import_from_as_name _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017542static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017543_gather_33_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017544{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017545 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017546 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017547 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017548 return NULL;
17549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017550 asdl_seq * _res = NULL;
17551 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017552 { // import_from_as_name _loop0_34
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017553 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017554 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017555 return NULL;
17556 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017557 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 +010017558 alias_ty elem;
17559 asdl_seq * seq;
17560 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017561 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017562 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017563 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017564 )
17565 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017566 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 +010017567 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017568 goto done;
17569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017570 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017571 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017574 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017575 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017576 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017577 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017578}
17579
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017580// _tmp_35: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017581static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017582_tmp_35_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017583{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017584 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017585 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017586 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017587 return NULL;
17588 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017589 void * _res = NULL;
17590 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017591 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017592 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017593 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017594 return NULL;
17595 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017596 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017597 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017598 expr_ty z;
17599 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017600 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017601 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017602 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017603 )
17604 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017605 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 +010017606 _res = z;
17607 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017608 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017609 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017610 return NULL;
17611 }
17612 goto done;
17613 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017614 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017615 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017618 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017619 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017620 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017621 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017622}
17623
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017624// _loop0_37: ',' dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017625static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017626_loop0_37_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017627{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017628 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017629 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017631 return NULL;
17632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017633 void *_res = NULL;
17634 int _mark = p->mark;
17635 int _start_mark = p->mark;
17636 void **_children = PyMem_Malloc(sizeof(void *));
17637 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017638 p->error_indicator = 1;
17639 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017641 return NULL;
17642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017643 ssize_t _children_capacity = 1;
17644 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017645 { // ',' dotted_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017646 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017647 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017648 return NULL;
17649 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017650 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 +010017651 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017652 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017653 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017654 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017655 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017656 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017657 )
17658 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017659 _res = elem;
17660 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017661 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017662 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017663 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017664 return NULL;
17665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017666 if (_n == _children_capacity) {
17667 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017668 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17669 if (!_new_children) {
17670 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017675 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017677 _children[_n++] = _res;
17678 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017679 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017680 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017681 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017683 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017684 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17685 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017686 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017687 p->error_indicator = 1;
17688 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017689 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017690 return NULL;
17691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017692 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17693 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017694 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017695 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017696 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017697}
17698
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017699// _gather_36: dotted_as_name _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017700static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017701_gather_36_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017702{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017703 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017704 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017705 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017706 return NULL;
17707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017708 asdl_seq * _res = NULL;
17709 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017710 { // dotted_as_name _loop0_37
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017712 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017713 return NULL;
17714 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017715 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 +010017716 alias_ty elem;
17717 asdl_seq * seq;
17718 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017719 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017720 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017721 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017722 )
17723 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017724 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 +010017725 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017726 goto done;
17727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017728 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017729 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
17730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017732 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017733 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017734 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017735 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017736}
17737
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017738// _tmp_38: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017739static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017740_tmp_38_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017741{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017742 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017743 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017744 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017745 return NULL;
17746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017747 void * _res = NULL;
17748 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017749 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017750 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017751 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017752 return NULL;
17753 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017754 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017755 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017756 expr_ty z;
17757 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017758 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017759 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017760 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017761 )
17762 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017763 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 +010017764 _res = z;
17765 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017766 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017767 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017768 return NULL;
17769 }
17770 goto done;
17771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017772 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017773 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017776 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017777 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017778 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017779 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017780}
17781
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017782// _loop0_40: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017783static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017784_loop0_40_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017785{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017786 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017787 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017788 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017789 return NULL;
17790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017791 void *_res = NULL;
17792 int _mark = p->mark;
17793 int _start_mark = p->mark;
17794 void **_children = PyMem_Malloc(sizeof(void *));
17795 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017796 p->error_indicator = 1;
17797 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017798 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017799 return NULL;
17800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017801 ssize_t _children_capacity = 1;
17802 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017803 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017804 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017805 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017806 return NULL;
17807 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017808 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017809 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017810 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017811 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017812 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017813 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017814 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017815 )
17816 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017817 _res = elem;
17818 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017819 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017820 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017821 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017822 return NULL;
17823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017824 if (_n == _children_capacity) {
17825 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017826 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17827 if (!_new_children) {
17828 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017833 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017835 _children[_n++] = _res;
17836 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017838 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017839 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017842 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17843 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017844 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017845 p->error_indicator = 1;
17846 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017847 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017848 return NULL;
17849 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017850 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17851 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017852 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017853 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017854 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017855}
17856
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017857// _gather_39: with_item _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017858static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017859_gather_39_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017860{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017861 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017862 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017863 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017864 return NULL;
17865 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017866 asdl_seq * _res = NULL;
17867 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017868 { // with_item _loop0_40
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017869 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017870 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017871 return NULL;
17872 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017873 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 +010017874 withitem_ty elem;
17875 asdl_seq * seq;
17876 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017877 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017878 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017879 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017880 )
17881 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017882 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 +010017883 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017884 goto done;
17885 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017886 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017887 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
17888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017890 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017891 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017892 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017893 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017894}
17895
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017896// _loop0_42: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017897static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017898_loop0_42_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017899{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017900 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017901 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017902 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017903 return NULL;
17904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017905 void *_res = NULL;
17906 int _mark = p->mark;
17907 int _start_mark = p->mark;
17908 void **_children = PyMem_Malloc(sizeof(void *));
17909 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017910 p->error_indicator = 1;
17911 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017912 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017913 return NULL;
17914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017915 ssize_t _children_capacity = 1;
17916 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017917 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017918 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017919 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017920 return NULL;
17921 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017922 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017923 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017924 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017925 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017926 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017927 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017928 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017929 )
17930 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017931 _res = elem;
17932 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017933 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017934 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017935 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017936 return NULL;
17937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017938 if (_n == _children_capacity) {
17939 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017940 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17941 if (!_new_children) {
17942 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017947 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017949 _children[_n++] = _res;
17950 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017952 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017953 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017956 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17957 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017958 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017959 p->error_indicator = 1;
17960 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017962 return NULL;
17963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017964 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17965 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017966 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017967 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017968 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017969}
17970
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017971// _gather_41: with_item _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017972static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017973_gather_41_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017974{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017975 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017976 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017977 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017978 return NULL;
17979 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017980 asdl_seq * _res = NULL;
17981 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017982 { // with_item _loop0_42
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017983 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017984 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017985 return NULL;
17986 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017987 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 +010017988 withitem_ty elem;
17989 asdl_seq * seq;
17990 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017991 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017992 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017993 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017994 )
17995 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030017996 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 +010017997 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017998 goto done;
17999 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018000 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018001 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018004 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018005 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018006 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018007 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018008}
18009
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018010// _loop0_44: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018011static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018012_loop0_44_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018013{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018014 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018015 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018016 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018017 return NULL;
18018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018019 void *_res = NULL;
18020 int _mark = p->mark;
18021 int _start_mark = p->mark;
18022 void **_children = PyMem_Malloc(sizeof(void *));
18023 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018024 p->error_indicator = 1;
18025 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018026 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018027 return NULL;
18028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018029 ssize_t _children_capacity = 1;
18030 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018031 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018032 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018033 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018034 return NULL;
18035 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018036 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018037 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018038 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018039 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018040 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018041 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018042 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018043 )
18044 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018045 _res = elem;
18046 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018047 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018048 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018049 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018050 return NULL;
18051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018052 if (_n == _children_capacity) {
18053 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018054 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18055 if (!_new_children) {
18056 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018061 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018062 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018063 _children[_n++] = _res;
18064 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018065 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018066 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018067 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018070 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18071 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018072 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018073 p->error_indicator = 1;
18074 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018075 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018076 return NULL;
18077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018078 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18079 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018080 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018081 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018082 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018083}
18084
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018085// _gather_43: with_item _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018086static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018087_gather_43_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018088{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018089 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018090 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018091 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018092 return NULL;
18093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018094 asdl_seq * _res = NULL;
18095 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018096 { // with_item _loop0_44
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018098 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018099 return NULL;
18100 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018101 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 +030018102 withitem_ty elem;
18103 asdl_seq * seq;
18104 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018105 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018106 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018107 (seq = _loop0_44_rule(p)) // _loop0_44
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018108 )
18109 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018110 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 +010018111 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018112 goto done;
18113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018114 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018115 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018118 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018119 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018120 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018121 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018122}
18123
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018124// _loop0_46: ',' with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018125static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018126_loop0_46_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018127{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018128 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018130 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018131 return NULL;
18132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018133 void *_res = NULL;
18134 int _mark = p->mark;
18135 int _start_mark = p->mark;
18136 void **_children = PyMem_Malloc(sizeof(void *));
18137 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018138 p->error_indicator = 1;
18139 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018140 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018141 return NULL;
18142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018143 ssize_t _children_capacity = 1;
18144 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018145 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018146 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018147 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018148 return NULL;
18149 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018150 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018151 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018152 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018153 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018154 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018155 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018156 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018157 )
18158 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018159 _res = elem;
18160 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018161 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018162 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018163 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018164 return NULL;
18165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018166 if (_n == _children_capacity) {
18167 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018168 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18169 if (!_new_children) {
18170 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018175 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018177 _children[_n++] = _res;
18178 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018180 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018181 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018184 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18185 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018186 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018187 p->error_indicator = 1;
18188 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018189 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018190 return NULL;
18191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018192 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18193 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018194 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018195 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018196 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018197}
18198
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018199// _gather_45: with_item _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018200static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018201_gather_45_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018202{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018203 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018204 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018205 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018206 return NULL;
18207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018208 asdl_seq * _res = NULL;
18209 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018210 { // with_item _loop0_46
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018212 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018213 return NULL;
18214 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018215 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 +030018216 withitem_ty elem;
18217 asdl_seq * seq;
18218 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018219 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018220 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018221 (seq = _loop0_46_rule(p)) // _loop0_46
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018222 )
18223 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018224 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 +010018225 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018226 goto done;
18227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018228 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018229 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018232 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018233 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018234 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018235 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018236}
18237
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018238// _tmp_47: ',' | ')' | ':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018239static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018240_tmp_47_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018241{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018242 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018243 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018244 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018245 return NULL;
18246 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018247 void * _res = NULL;
18248 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018249 { // ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018250 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018251 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018252 return NULL;
18253 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018254 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18255 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018256 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018257 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018258 )
18259 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018260 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18261 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018262 goto done;
18263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018264 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018265 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18267 }
18268 { // ')'
18269 if (p->error_indicator) {
18270 D(p->level--);
18271 return NULL;
18272 }
18273 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18274 Token * _literal;
18275 if (
18276 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18277 )
18278 {
18279 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18280 _res = _literal;
18281 goto done;
18282 }
18283 p->mark = _mark;
18284 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18286 }
18287 { // ':'
18288 if (p->error_indicator) {
18289 D(p->level--);
18290 return NULL;
18291 }
18292 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18293 Token * _literal;
18294 if (
18295 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18296 )
18297 {
18298 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18299 _res = _literal;
18300 goto done;
18301 }
18302 p->mark = _mark;
18303 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018306 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018307 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018308 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018309 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018310}
18311
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018312// _loop1_48: except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018313static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018314_loop1_48_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018315{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018316 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018317 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018318 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018319 return NULL;
18320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018321 void *_res = NULL;
18322 int _mark = p->mark;
18323 int _start_mark = p->mark;
18324 void **_children = PyMem_Malloc(sizeof(void *));
18325 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018326 p->error_indicator = 1;
18327 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018328 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018329 return NULL;
18330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018331 ssize_t _children_capacity = 1;
18332 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018333 { // except_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018335 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018336 return NULL;
18337 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018338 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018339 excepthandler_ty except_block_var;
18340 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018341 (except_block_var = except_block_rule(p)) // except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018342 )
18343 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018344 _res = except_block_var;
18345 if (_n == _children_capacity) {
18346 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018347 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18348 if (!_new_children) {
18349 p->error_indicator = 1;
18350 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018351 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018352 return NULL;
18353 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018354 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018356 _children[_n++] = _res;
18357 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018359 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018360 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018363 if (_n == 0 || p->error_indicator) {
18364 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018365 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018366 return NULL;
18367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018368 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18369 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018370 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018371 p->error_indicator = 1;
18372 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018373 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018374 return NULL;
18375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018376 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18377 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018378 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018379 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018380 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018381}
18382
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018383// _tmp_49: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018384static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018385_tmp_49_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018386{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018387 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018388 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018389 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018390 return NULL;
18391 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018392 void * _res = NULL;
18393 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018394 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018395 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018396 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018397 return NULL;
18398 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018399 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018400 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018401 expr_ty z;
18402 if (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018403 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018404 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030018405 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018406 )
18407 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018408 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 +010018409 _res = z;
18410 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018411 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018412 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018413 return NULL;
18414 }
18415 goto done;
18416 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018417 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018418 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018421 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018422 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018423 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018424 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018425}
18426
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018427// _tmp_50: 'from' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018428static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018429_tmp_50_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018430{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018431 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018433 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018434 return NULL;
18435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018436 void * _res = NULL;
18437 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018438 { // 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018439 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018440 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018441 return NULL;
18442 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018443 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018444 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018445 expr_ty z;
18446 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018447 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018448 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018449 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018450 )
18451 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018452 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 +010018453 _res = z;
18454 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018455 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018456 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018457 return NULL;
18458 }
18459 goto done;
18460 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018461 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018462 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018465 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018466 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018467 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018468 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018469}
18470
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018471// _tmp_51: '->' expression
Guido van Rossumc001c092020-04-30 12:12:19 -070018472static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018473_tmp_51_rule(Parser *p)
18474{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018475 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018476 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018477 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018478 return NULL;
18479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018480 void * _res = NULL;
18481 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018482 { // '->' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018483 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018484 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018485 return NULL;
18486 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018487 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018488 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018489 expr_ty z;
18490 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018491 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018492 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018493 (z = expression_rule(p)) // expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018494 )
18495 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018496 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018497 _res = z;
18498 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018499 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018500 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018501 return NULL;
18502 }
18503 goto done;
18504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018505 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018506 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018508 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018509 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018510 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018511 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018512 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018513}
18514
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018515// _tmp_52: '->' expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018516static void *
18517_tmp_52_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018518{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018519 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018521 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018522 return NULL;
18523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018524 void * _res = NULL;
18525 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018526 { // '->' expression
18527 if (p->error_indicator) {
18528 D(p->level--);
18529 return NULL;
18530 }
18531 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18532 Token * _literal;
18533 expr_ty z;
18534 if (
18535 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18536 &&
18537 (z = expression_rule(p)) // expression
18538 )
18539 {
18540 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18541 _res = z;
18542 if (_res == NULL && PyErr_Occurred()) {
18543 p->error_indicator = 1;
18544 D(p->level--);
18545 return NULL;
18546 }
18547 goto done;
18548 }
18549 p->mark = _mark;
18550 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18552 }
18553 _res = NULL;
18554 done:
18555 D(p->level--);
18556 return _res;
18557}
18558
18559// _tmp_53: NEWLINE INDENT
18560static void *
18561_tmp_53_rule(Parser *p)
18562{
18563 D(p->level++);
18564 if (p->error_indicator) {
18565 D(p->level--);
18566 return NULL;
18567 }
18568 void * _res = NULL;
18569 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018570 { // NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018571 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018572 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018573 return NULL;
18574 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018575 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010018576 Token * indent_var;
18577 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018578 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018579 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070018580 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018581 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070018582 )
18583 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018584 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 +010018585 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
Guido van Rossumc001c092020-04-30 12:12:19 -070018586 goto done;
18587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018588 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018589 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018592 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070018593 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018594 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018595 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070018596}
18597
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018598// _loop0_54: param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018599static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018600_loop0_54_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018601{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018602 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018603 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018604 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018605 return NULL;
18606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018607 void *_res = NULL;
18608 int _mark = p->mark;
18609 int _start_mark = p->mark;
18610 void **_children = PyMem_Malloc(sizeof(void *));
18611 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018612 p->error_indicator = 1;
18613 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018614 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018615 return NULL;
18616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018617 ssize_t _children_capacity = 1;
18618 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018619 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018620 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018621 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018622 return NULL;
18623 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018624 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 -070018625 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018626 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018627 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018628 )
18629 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018630 _res = param_no_default_var;
18631 if (_n == _children_capacity) {
18632 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018633 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18634 if (!_new_children) {
18635 p->error_indicator = 1;
18636 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018637 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018638 return NULL;
18639 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018640 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018642 _children[_n++] = _res;
18643 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018645 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018646 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018648 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018649 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18650 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018651 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018652 p->error_indicator = 1;
18653 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018654 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018655 return NULL;
18656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018657 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18658 PyMem_Free(_children);
18659 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018660 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018661 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018662}
18663
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018664// _loop0_55: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018665static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018666_loop0_55_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018667{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018668 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018669 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018670 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018671 return NULL;
18672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018673 void *_res = NULL;
18674 int _mark = p->mark;
18675 int _start_mark = p->mark;
18676 void **_children = PyMem_Malloc(sizeof(void *));
18677 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018678 p->error_indicator = 1;
18679 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018680 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018681 return NULL;
18682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018683 ssize_t _children_capacity = 1;
18684 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018685 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018686 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018687 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018688 return NULL;
18689 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018690 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 -070018691 NameDefaultPair* param_with_default_var;
18692 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018693 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018694 )
18695 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018696 _res = param_with_default_var;
18697 if (_n == _children_capacity) {
18698 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018699 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18700 if (!_new_children) {
18701 p->error_indicator = 1;
18702 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018703 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018704 return NULL;
18705 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018706 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018708 _children[_n++] = _res;
18709 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018711 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018712 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018715 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18716 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018717 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018718 p->error_indicator = 1;
18719 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018720 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018721 return NULL;
18722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018723 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18724 PyMem_Free(_children);
18725 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018726 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018727 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018728}
18729
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018730// _loop0_56: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018731static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018732_loop0_56_rule(Parser *p)
18733{
18734 D(p->level++);
18735 if (p->error_indicator) {
18736 D(p->level--);
18737 return NULL;
18738 }
18739 void *_res = NULL;
18740 int _mark = p->mark;
18741 int _start_mark = p->mark;
18742 void **_children = PyMem_Malloc(sizeof(void *));
18743 if (!_children) {
18744 p->error_indicator = 1;
18745 PyErr_NoMemory();
18746 D(p->level--);
18747 return NULL;
18748 }
18749 ssize_t _children_capacity = 1;
18750 ssize_t _n = 0;
18751 { // param_with_default
18752 if (p->error_indicator) {
18753 D(p->level--);
18754 return NULL;
18755 }
18756 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18757 NameDefaultPair* param_with_default_var;
18758 while (
18759 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18760 )
18761 {
18762 _res = param_with_default_var;
18763 if (_n == _children_capacity) {
18764 _children_capacity *= 2;
18765 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18766 if (!_new_children) {
18767 p->error_indicator = 1;
18768 PyErr_NoMemory();
18769 D(p->level--);
18770 return NULL;
18771 }
18772 _children = _new_children;
18773 }
18774 _children[_n++] = _res;
18775 _mark = p->mark;
18776 }
18777 p->mark = _mark;
18778 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
18779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18780 }
18781 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18782 if (!_seq) {
18783 PyMem_Free(_children);
18784 p->error_indicator = 1;
18785 PyErr_NoMemory();
18786 D(p->level--);
18787 return NULL;
18788 }
18789 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18790 PyMem_Free(_children);
18791 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
18792 D(p->level--);
18793 return _seq;
18794}
18795
18796// _loop1_57: param_no_default
18797static asdl_seq *
18798_loop1_57_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018799{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018800 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018802 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018803 return NULL;
18804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018805 void *_res = NULL;
18806 int _mark = p->mark;
18807 int _start_mark = p->mark;
18808 void **_children = PyMem_Malloc(sizeof(void *));
18809 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018810 p->error_indicator = 1;
18811 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018812 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018813 return NULL;
18814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018815 ssize_t _children_capacity = 1;
18816 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018817 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018818 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018819 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018820 return NULL;
18821 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018822 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 -070018823 arg_ty param_no_default_var;
18824 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018825 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018826 )
18827 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018828 _res = param_no_default_var;
18829 if (_n == _children_capacity) {
18830 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018831 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18832 if (!_new_children) {
18833 p->error_indicator = 1;
18834 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018836 return NULL;
18837 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018838 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018840 _children[_n++] = _res;
18841 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018843 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018844 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018847 if (_n == 0 || p->error_indicator) {
18848 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018850 return NULL;
18851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018852 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18853 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018854 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018855 p->error_indicator = 1;
18856 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018857 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018858 return NULL;
18859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018860 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18861 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018862 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018863 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018864 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018865}
18866
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018867// _loop0_58: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018868static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018869_loop0_58_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018870{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018871 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018872 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018873 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018874 return NULL;
18875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018876 void *_res = NULL;
18877 int _mark = p->mark;
18878 int _start_mark = p->mark;
18879 void **_children = PyMem_Malloc(sizeof(void *));
18880 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018881 p->error_indicator = 1;
18882 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018883 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018884 return NULL;
18885 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018886 ssize_t _children_capacity = 1;
18887 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018888 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018889 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018890 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018891 return NULL;
18892 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018893 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 -070018894 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018895 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018896 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018897 )
18898 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018899 _res = param_with_default_var;
18900 if (_n == _children_capacity) {
18901 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018902 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18903 if (!_new_children) {
18904 p->error_indicator = 1;
18905 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018906 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018907 return NULL;
18908 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018909 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018911 _children[_n++] = _res;
18912 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018913 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018914 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018915 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018918 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18919 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018920 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018921 p->error_indicator = 1;
18922 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018923 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018924 return NULL;
18925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018926 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18927 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018928 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018929 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018930 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018931}
18932
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018933// _loop1_59: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018934static asdl_seq *
18935_loop1_59_rule(Parser *p)
18936{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018937 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018938 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018939 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018940 return NULL;
18941 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018942 void *_res = NULL;
18943 int _mark = p->mark;
18944 int _start_mark = p->mark;
18945 void **_children = PyMem_Malloc(sizeof(void *));
18946 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018947 p->error_indicator = 1;
18948 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018949 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018950 return NULL;
18951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018952 ssize_t _children_capacity = 1;
18953 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018954 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018955 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018956 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018957 return NULL;
18958 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018959 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18960 NameDefaultPair* param_with_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018961 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018962 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018963 )
18964 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018965 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018966 if (_n == _children_capacity) {
18967 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018968 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18969 if (!_new_children) {
18970 p->error_indicator = 1;
18971 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018972 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018973 return NULL;
18974 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018975 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018976 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018977 _children[_n++] = _res;
18978 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018979 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018980 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018981 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030018982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018984 if (_n == 0 || p->error_indicator) {
18985 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018986 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018987 return NULL;
18988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018989 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18990 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018991 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018992 p->error_indicator = 1;
18993 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018994 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018995 return NULL;
18996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018997 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18998 PyMem_Free(_children);
18999 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019000 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019001 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019002}
19003
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019004// _loop1_60: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019005static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019006_loop1_60_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070019007{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019008 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070019009 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019010 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019011 return NULL;
19012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019013 void *_res = NULL;
19014 int _mark = p->mark;
19015 int _start_mark = p->mark;
19016 void **_children = PyMem_Malloc(sizeof(void *));
19017 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019018 p->error_indicator = 1;
19019 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019020 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019021 return NULL;
19022 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019023 ssize_t _children_capacity = 1;
19024 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019025 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019026 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019027 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019028 return NULL;
19029 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019030 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 +030019031 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070019032 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019033 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070019034 )
19035 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019036 _res = param_no_default_var;
19037 if (_n == _children_capacity) {
19038 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019039 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19040 if (!_new_children) {
19041 p->error_indicator = 1;
19042 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019043 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019044 return NULL;
19045 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019046 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070019047 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019048 _children[_n++] = _res;
19049 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070019050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019051 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019052 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070019054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019055 if (_n == 0 || p->error_indicator) {
19056 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019057 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019058 return NULL;
19059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019060 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19061 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019062 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019063 p->error_indicator = 1;
19064 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019065 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019066 return NULL;
19067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019068 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19069 PyMem_Free(_children);
19070 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019071 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019072 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019073}
19074
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019075// _loop1_61: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019076static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019077_loop1_61_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019078{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019079 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019080 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019081 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019082 return NULL;
19083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019084 void *_res = NULL;
19085 int _mark = p->mark;
19086 int _start_mark = p->mark;
19087 void **_children = PyMem_Malloc(sizeof(void *));
19088 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019089 p->error_indicator = 1;
19090 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019091 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019092 return NULL;
19093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019094 ssize_t _children_capacity = 1;
19095 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019096 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019098 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019099 return NULL;
19100 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019101 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 +030019102 arg_ty param_no_default_var;
19103 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019104 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019105 )
19106 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019107 _res = param_no_default_var;
19108 if (_n == _children_capacity) {
19109 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019110 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19111 if (!_new_children) {
19112 p->error_indicator = 1;
19113 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019114 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019115 return NULL;
19116 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019117 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019118 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019119 _children[_n++] = _res;
19120 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019122 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019123 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019126 if (_n == 0 || p->error_indicator) {
19127 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019128 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019129 return NULL;
19130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019131 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19132 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019133 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019134 p->error_indicator = 1;
19135 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019136 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070019137 return NULL;
19138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019139 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19140 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019141 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019142 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019143 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070019144}
19145
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019146// _loop0_62: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019147static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019148_loop0_62_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019149{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019150 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019151 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019152 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019153 return NULL;
19154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019155 void *_res = NULL;
19156 int _mark = p->mark;
19157 int _start_mark = p->mark;
19158 void **_children = PyMem_Malloc(sizeof(void *));
19159 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019160 p->error_indicator = 1;
19161 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019162 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019163 return NULL;
19164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019165 ssize_t _children_capacity = 1;
19166 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019167 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019169 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019170 return NULL;
19171 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019172 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 +030019173 arg_ty param_no_default_var;
19174 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019175 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019176 )
19177 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019178 _res = param_no_default_var;
19179 if (_n == _children_capacity) {
19180 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019181 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19182 if (!_new_children) {
19183 p->error_indicator = 1;
19184 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019185 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019186 return NULL;
19187 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019188 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019190 _children[_n++] = _res;
19191 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019192 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019193 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019194 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019197 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19198 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019199 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019200 p->error_indicator = 1;
19201 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019202 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019203 return NULL;
19204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019205 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19206 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019207 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019208 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019209 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019210}
19211
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019212// _loop1_63: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019213static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019214_loop1_63_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019215{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019216 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019218 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019219 return NULL;
19220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019221 void *_res = NULL;
19222 int _mark = p->mark;
19223 int _start_mark = p->mark;
19224 void **_children = PyMem_Malloc(sizeof(void *));
19225 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019226 p->error_indicator = 1;
19227 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019228 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019229 return NULL;
19230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019231 ssize_t _children_capacity = 1;
19232 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019233 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019234 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019235 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019236 return NULL;
19237 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019238 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 +030019239 NameDefaultPair* param_with_default_var;
19240 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019241 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019242 )
19243 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019244 _res = param_with_default_var;
19245 if (_n == _children_capacity) {
19246 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019247 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19248 if (!_new_children) {
19249 p->error_indicator = 1;
19250 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019251 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019252 return NULL;
19253 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019254 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019256 _children[_n++] = _res;
19257 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019258 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019259 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019260 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019263 if (_n == 0 || p->error_indicator) {
19264 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019265 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019266 return NULL;
19267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019268 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19269 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019270 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019271 p->error_indicator = 1;
19272 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019273 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019274 return NULL;
19275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019276 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19277 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019278 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019279 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019280 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019281}
19282
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019283// _loop0_64: param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019284static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019285_loop0_64_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019286{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019287 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019288 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019289 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019290 return NULL;
19291 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019292 void *_res = NULL;
19293 int _mark = p->mark;
19294 int _start_mark = p->mark;
19295 void **_children = PyMem_Malloc(sizeof(void *));
19296 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019297 p->error_indicator = 1;
19298 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019299 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019300 return NULL;
19301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019302 ssize_t _children_capacity = 1;
19303 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019304 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019305 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019306 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019307 return NULL;
19308 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019309 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19310 arg_ty param_no_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019311 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019312 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019313 )
19314 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019315 _res = param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019316 if (_n == _children_capacity) {
19317 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019318 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19319 if (!_new_children) {
19320 p->error_indicator = 1;
19321 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019322 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019323 return NULL;
19324 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019325 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019327 _children[_n++] = _res;
19328 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019329 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019330 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019331 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019334 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19335 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019336 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019337 p->error_indicator = 1;
19338 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019339 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019340 return NULL;
19341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019342 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19343 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019344 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019345 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019346 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019347}
19348
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019349// _loop1_65: param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019350static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019351_loop1_65_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019352{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019353 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019354 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019355 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019356 return NULL;
19357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019358 void *_res = NULL;
19359 int _mark = p->mark;
19360 int _start_mark = p->mark;
19361 void **_children = PyMem_Malloc(sizeof(void *));
19362 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019363 p->error_indicator = 1;
19364 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019365 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019366 return NULL;
19367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019368 ssize_t _children_capacity = 1;
19369 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019370 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019371 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019372 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019373 return NULL;
19374 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019375 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19376 NameDefaultPair* param_with_default_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019377 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019378 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019379 )
19380 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019381 _res = param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019382 if (_n == _children_capacity) {
19383 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019384 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19385 if (!_new_children) {
19386 p->error_indicator = 1;
19387 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019388 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019389 return NULL;
19390 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019391 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019393 _children[_n++] = _res;
19394 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019395 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019396 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019397 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019400 if (_n == 0 || p->error_indicator) {
19401 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019402 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019403 return NULL;
19404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019405 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19406 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019407 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019408 p->error_indicator = 1;
19409 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019410 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019411 return NULL;
19412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019413 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19414 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019415 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019416 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019417 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019418}
19419
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019420// _loop0_66: param_maybe_default
19421static asdl_seq *
19422_loop0_66_rule(Parser *p)
19423{
19424 D(p->level++);
19425 if (p->error_indicator) {
19426 D(p->level--);
19427 return NULL;
19428 }
19429 void *_res = NULL;
19430 int _mark = p->mark;
19431 int _start_mark = p->mark;
19432 void **_children = PyMem_Malloc(sizeof(void *));
19433 if (!_children) {
19434 p->error_indicator = 1;
19435 PyErr_NoMemory();
19436 D(p->level--);
19437 return NULL;
19438 }
19439 ssize_t _children_capacity = 1;
19440 ssize_t _n = 0;
19441 { // param_maybe_default
19442 if (p->error_indicator) {
19443 D(p->level--);
19444 return NULL;
19445 }
19446 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19447 NameDefaultPair* param_maybe_default_var;
19448 while (
19449 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19450 )
19451 {
19452 _res = param_maybe_default_var;
19453 if (_n == _children_capacity) {
19454 _children_capacity *= 2;
19455 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19456 if (!_new_children) {
19457 p->error_indicator = 1;
19458 PyErr_NoMemory();
19459 D(p->level--);
19460 return NULL;
19461 }
19462 _children = _new_children;
19463 }
19464 _children[_n++] = _res;
19465 _mark = p->mark;
19466 }
19467 p->mark = _mark;
19468 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19470 }
19471 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19472 if (!_seq) {
19473 PyMem_Free(_children);
19474 p->error_indicator = 1;
19475 PyErr_NoMemory();
19476 D(p->level--);
19477 return NULL;
19478 }
19479 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19480 PyMem_Free(_children);
19481 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19482 D(p->level--);
19483 return _seq;
19484}
19485
19486// _loop1_67: param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019487static asdl_seq *
19488_loop1_67_rule(Parser *p)
19489{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019490 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019491 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019492 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019493 return NULL;
19494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019495 void *_res = NULL;
19496 int _mark = p->mark;
19497 int _start_mark = p->mark;
19498 void **_children = PyMem_Malloc(sizeof(void *));
19499 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019500 p->error_indicator = 1;
19501 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019502 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019503 return NULL;
19504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019505 ssize_t _children_capacity = 1;
19506 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019507 { // param_maybe_default
19508 if (p->error_indicator) {
19509 D(p->level--);
19510 return NULL;
19511 }
19512 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19513 NameDefaultPair* param_maybe_default_var;
19514 while (
19515 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19516 )
19517 {
19518 _res = param_maybe_default_var;
19519 if (_n == _children_capacity) {
19520 _children_capacity *= 2;
19521 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19522 if (!_new_children) {
19523 p->error_indicator = 1;
19524 PyErr_NoMemory();
19525 D(p->level--);
19526 return NULL;
19527 }
19528 _children = _new_children;
19529 }
19530 _children[_n++] = _res;
19531 _mark = p->mark;
19532 }
19533 p->mark = _mark;
19534 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19536 }
19537 if (_n == 0 || p->error_indicator) {
19538 PyMem_Free(_children);
19539 D(p->level--);
19540 return NULL;
19541 }
19542 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19543 if (!_seq) {
19544 PyMem_Free(_children);
19545 p->error_indicator = 1;
19546 PyErr_NoMemory();
19547 D(p->level--);
19548 return NULL;
19549 }
19550 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19551 PyMem_Free(_children);
19552 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19553 D(p->level--);
19554 return _seq;
19555}
19556
19557// _loop1_68: ('@' named_expression NEWLINE)
19558static asdl_seq *
19559_loop1_68_rule(Parser *p)
19560{
19561 D(p->level++);
19562 if (p->error_indicator) {
19563 D(p->level--);
19564 return NULL;
19565 }
19566 void *_res = NULL;
19567 int _mark = p->mark;
19568 int _start_mark = p->mark;
19569 void **_children = PyMem_Malloc(sizeof(void *));
19570 if (!_children) {
19571 p->error_indicator = 1;
19572 PyErr_NoMemory();
19573 D(p->level--);
19574 return NULL;
19575 }
19576 ssize_t _children_capacity = 1;
19577 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019578 { // ('@' named_expression NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019580 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019581 return NULL;
19582 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019583 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019584 void *_tmp_142_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019585 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019586 (_tmp_142_var = _tmp_142_rule(p)) // '@' named_expression NEWLINE
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019587 )
19588 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019589 _res = _tmp_142_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019590 if (_n == _children_capacity) {
19591 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019592 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19593 if (!_new_children) {
19594 p->error_indicator = 1;
19595 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019596 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019597 return NULL;
19598 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019599 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019601 _children[_n++] = _res;
19602 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019604 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019605 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019608 if (_n == 0 || p->error_indicator) {
19609 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019610 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019611 return NULL;
19612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019613 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19614 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019615 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019616 p->error_indicator = 1;
19617 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019618 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019619 return NULL;
19620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019621 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19622 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019623 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019624 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019625 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019626}
19627
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019628// _tmp_69: '(' arguments? ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019629static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019630_tmp_69_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019631{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019632 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019633 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019634 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019635 return NULL;
19636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019637 void * _res = NULL;
19638 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019639 { // '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019640 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019641 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019642 return NULL;
19643 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019644 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019645 Token * _literal;
19646 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019647 void *z;
19648 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019649 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019650 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019651 (z = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019652 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019653 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019654 )
19655 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019656 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019657 _res = z;
19658 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019659 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019660 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019661 return NULL;
19662 }
19663 goto done;
19664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019665 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019666 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019669 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019670 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019671 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019672 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019673}
19674
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019675// _loop0_71: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019676static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019677_loop0_71_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019678{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019679 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019680 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019681 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019682 return NULL;
19683 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019684 void *_res = NULL;
19685 int _mark = p->mark;
19686 int _start_mark = p->mark;
19687 void **_children = PyMem_Malloc(sizeof(void *));
19688 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019689 p->error_indicator = 1;
19690 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019691 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019692 return NULL;
19693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019694 ssize_t _children_capacity = 1;
19695 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019696 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019697 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019698 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019699 return NULL;
19700 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019701 D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019702 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019703 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019704 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019705 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019706 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019707 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019708 )
19709 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019710 _res = elem;
19711 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019712 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019713 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019714 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019715 return NULL;
19716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019717 if (_n == _children_capacity) {
19718 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019719 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19720 if (!_new_children) {
19721 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019726 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019728 _children[_n++] = _res;
19729 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019731 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019732 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019735 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19736 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019737 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019738 p->error_indicator = 1;
19739 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019740 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019741 return NULL;
19742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019743 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19744 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019745 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019746 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019747 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019748}
19749
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019750// _gather_70: star_expression _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019751static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019752_gather_70_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019753{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019754 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019755 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019757 return NULL;
19758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019759 asdl_seq * _res = NULL;
19760 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019761 { // star_expression _loop0_71
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019762 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019763 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019764 return NULL;
19765 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019766 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 +010019767 expr_ty elem;
19768 asdl_seq * seq;
19769 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019770 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019771 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019772 (seq = _loop0_71_rule(p)) // _loop0_71
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019773 )
19774 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019775 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 +010019776 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019777 goto done;
19778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019779 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019780 D(fprintf(stderr, "%*c%s _gather_70[%d-%d]: %s failed!\n", p->level, ' ',
19781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression _loop0_71"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019783 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019784 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019785 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019786 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019787}
19788
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019789// _loop1_72: (',' star_expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019790static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019791_loop1_72_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019792{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019793 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019796 return NULL;
19797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019798 void *_res = NULL;
19799 int _mark = p->mark;
19800 int _start_mark = p->mark;
19801 void **_children = PyMem_Malloc(sizeof(void *));
19802 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019803 p->error_indicator = 1;
19804 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019805 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019806 return NULL;
19807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019808 ssize_t _children_capacity = 1;
19809 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019810 { // (',' star_expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019811 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019812 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019813 return NULL;
19814 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019815 D(fprintf(stderr, "%*c> _loop1_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019816 void *_tmp_143_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019817 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019818 (_tmp_143_var = _tmp_143_rule(p)) // ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019819 )
19820 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010019821 _res = _tmp_143_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019822 if (_n == _children_capacity) {
19823 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019824 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19825 if (!_new_children) {
19826 p->error_indicator = 1;
19827 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019829 return NULL;
19830 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019831 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019833 _children[_n++] = _res;
19834 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019836 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019837 D(fprintf(stderr, "%*c%s _loop1_72[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019840 if (_n == 0 || p->error_indicator) {
19841 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019842 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019843 return NULL;
19844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019845 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19846 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019847 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019848 p->error_indicator = 1;
19849 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019850 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019851 return NULL;
19852 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019853 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19854 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019855 _PyPegen_insert_memo(p, _start_mark, _loop1_72_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019856 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019857 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019858}
19859
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019860// _loop0_74: ',' star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019861static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019862_loop0_74_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019863{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019864 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019865 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019867 return NULL;
19868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019869 void *_res = NULL;
19870 int _mark = p->mark;
19871 int _start_mark = p->mark;
19872 void **_children = PyMem_Malloc(sizeof(void *));
19873 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019874 p->error_indicator = 1;
19875 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019876 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019877 return NULL;
19878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019879 ssize_t _children_capacity = 1;
19880 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019881 { // ',' star_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019882 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019883 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019884 return NULL;
19885 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019886 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 +010019887 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019888 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019889 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019890 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019891 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019892 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019893 )
19894 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019895 _res = elem;
19896 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019897 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019898 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019899 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019900 return NULL;
19901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019902 if (_n == _children_capacity) {
19903 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019904 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19905 if (!_new_children) {
19906 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019911 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019913 _children[_n++] = _res;
19914 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019916 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019917 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019920 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19921 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019922 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019923 p->error_indicator = 1;
19924 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019925 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019926 return NULL;
19927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019928 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19929 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019930 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019931 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019932 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019933}
19934
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019935// _gather_73: star_named_expression _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019936static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019937_gather_73_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019938{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019939 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019940 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019941 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019942 return NULL;
19943 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019944 asdl_seq * _res = NULL;
19945 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019946 { // star_named_expression _loop0_74
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019947 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019948 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019949 return NULL;
19950 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019951 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 +010019952 expr_ty elem;
19953 asdl_seq * seq;
19954 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019955 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019956 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019957 (seq = _loop0_74_rule(p)) // _loop0_74
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019958 )
19959 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019960 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 +010019961 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019962 goto done;
19963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019964 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019965 D(fprintf(stderr, "%*c%s _gather_73[%d-%d]: %s failed!\n", p->level, ' ',
19966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_74"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019968 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019969 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019970 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019971 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019972}
19973
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019974// _loop1_75: (',' expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019975static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030019976_loop1_75_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019977{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019978 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019980 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019981 return NULL;
19982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019983 void *_res = NULL;
19984 int _mark = p->mark;
19985 int _start_mark = p->mark;
19986 void **_children = PyMem_Malloc(sizeof(void *));
19987 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019988 p->error_indicator = 1;
19989 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019990 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019991 return NULL;
19992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019993 ssize_t _children_capacity = 1;
19994 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019995 { // (',' expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019996 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019997 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019998 return NULL;
19999 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020000 D(fprintf(stderr, "%*c> _loop1_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010020001 void *_tmp_144_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020002 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010020003 (_tmp_144_var = _tmp_144_rule(p)) // ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020004 )
20005 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010020006 _res = _tmp_144_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020007 if (_n == _children_capacity) {
20008 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020009 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20010 if (!_new_children) {
20011 p->error_indicator = 1;
20012 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020013 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020014 return NULL;
20015 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020016 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020018 _children[_n++] = _res;
20019 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020021 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020022 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020025 if (_n == 0 || p->error_indicator) {
20026 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020027 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020028 return NULL;
20029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020030 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20031 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020032 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020033 p->error_indicator = 1;
20034 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020035 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020036 return NULL;
20037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020038 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20039 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020040 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020041 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020042 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020043}
20044
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020045// _loop0_76: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020046static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020047_loop0_76_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020048{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020049 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020050 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020051 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020052 return NULL;
20053 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020054 void *_res = NULL;
20055 int _mark = p->mark;
20056 int _start_mark = p->mark;
20057 void **_children = PyMem_Malloc(sizeof(void *));
20058 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020059 p->error_indicator = 1;
20060 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020061 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020062 return NULL;
20063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020064 ssize_t _children_capacity = 1;
20065 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020066 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020068 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020069 return NULL;
20070 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020071 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 -070020072 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020073 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020074 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020075 )
20076 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020077 _res = lambda_param_no_default_var;
20078 if (_n == _children_capacity) {
20079 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020080 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20081 if (!_new_children) {
20082 p->error_indicator = 1;
20083 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020084 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020085 return NULL;
20086 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020087 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020089 _children[_n++] = _res;
20090 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020092 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020093 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020096 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20097 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020098 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020099 p->error_indicator = 1;
20100 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020101 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020102 return NULL;
20103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020104 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20105 PyMem_Free(_children);
20106 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020107 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020108 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020109}
20110
Guido van Rossum3941d972020-05-01 09:42:03 -070020111// _loop0_77: lambda_param_with_default
20112static asdl_seq *
20113_loop0_77_rule(Parser *p)
20114{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020115 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020116 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020117 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020118 return NULL;
20119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020120 void *_res = NULL;
20121 int _mark = p->mark;
20122 int _start_mark = p->mark;
20123 void **_children = PyMem_Malloc(sizeof(void *));
20124 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020125 p->error_indicator = 1;
20126 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020127 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020128 return NULL;
20129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020130 ssize_t _children_capacity = 1;
20131 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020132 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020135 return NULL;
20136 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020137 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 -070020138 NameDefaultPair* lambda_param_with_default_var;
20139 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020140 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020141 )
20142 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020143 _res = lambda_param_with_default_var;
20144 if (_n == _children_capacity) {
20145 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020146 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20147 if (!_new_children) {
20148 p->error_indicator = 1;
20149 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020150 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020151 return NULL;
20152 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020153 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020155 _children[_n++] = _res;
20156 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020158 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020159 D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ',
20160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020162 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20163 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020164 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020165 p->error_indicator = 1;
20166 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020167 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020168 return NULL;
20169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020170 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20171 PyMem_Free(_children);
20172 _PyPegen_insert_memo(p, _start_mark, _loop0_77_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020173 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020174 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020175}
20176
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020177// _loop0_78: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020178static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020179_loop0_78_rule(Parser *p)
20180{
20181 D(p->level++);
20182 if (p->error_indicator) {
20183 D(p->level--);
20184 return NULL;
20185 }
20186 void *_res = NULL;
20187 int _mark = p->mark;
20188 int _start_mark = p->mark;
20189 void **_children = PyMem_Malloc(sizeof(void *));
20190 if (!_children) {
20191 p->error_indicator = 1;
20192 PyErr_NoMemory();
20193 D(p->level--);
20194 return NULL;
20195 }
20196 ssize_t _children_capacity = 1;
20197 ssize_t _n = 0;
20198 { // lambda_param_with_default
20199 if (p->error_indicator) {
20200 D(p->level--);
20201 return NULL;
20202 }
20203 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20204 NameDefaultPair* lambda_param_with_default_var;
20205 while (
20206 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20207 )
20208 {
20209 _res = lambda_param_with_default_var;
20210 if (_n == _children_capacity) {
20211 _children_capacity *= 2;
20212 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20213 if (!_new_children) {
20214 p->error_indicator = 1;
20215 PyErr_NoMemory();
20216 D(p->level--);
20217 return NULL;
20218 }
20219 _children = _new_children;
20220 }
20221 _children[_n++] = _res;
20222 _mark = p->mark;
20223 }
20224 p->mark = _mark;
20225 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20227 }
20228 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20229 if (!_seq) {
20230 PyMem_Free(_children);
20231 p->error_indicator = 1;
20232 PyErr_NoMemory();
20233 D(p->level--);
20234 return NULL;
20235 }
20236 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20237 PyMem_Free(_children);
20238 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20239 D(p->level--);
20240 return _seq;
20241}
20242
20243// _loop1_79: lambda_param_no_default
20244static asdl_seq *
20245_loop1_79_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020246{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020247 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020249 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020250 return NULL;
20251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020252 void *_res = NULL;
20253 int _mark = p->mark;
20254 int _start_mark = p->mark;
20255 void **_children = PyMem_Malloc(sizeof(void *));
20256 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020257 p->error_indicator = 1;
20258 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020259 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020260 return NULL;
20261 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020262 ssize_t _children_capacity = 1;
20263 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020264 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020265 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020266 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020267 return NULL;
20268 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020269 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 -070020270 arg_ty lambda_param_no_default_var;
20271 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020272 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020273 )
20274 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020275 _res = lambda_param_no_default_var;
20276 if (_n == _children_capacity) {
20277 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020278 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20279 if (!_new_children) {
20280 p->error_indicator = 1;
20281 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020282 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020283 return NULL;
20284 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020285 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020287 _children[_n++] = _res;
20288 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020290 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020291 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020294 if (_n == 0 || p->error_indicator) {
20295 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020296 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020297 return NULL;
20298 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020299 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20300 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020301 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020302 p->error_indicator = 1;
20303 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020304 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020305 return NULL;
20306 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020307 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20308 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020309 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020310 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020311 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020312}
20313
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020314// _loop0_80: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020315static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020316_loop0_80_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020317{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020318 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020319 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020320 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020321 return NULL;
20322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020323 void *_res = NULL;
20324 int _mark = p->mark;
20325 int _start_mark = p->mark;
20326 void **_children = PyMem_Malloc(sizeof(void *));
20327 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020328 p->error_indicator = 1;
20329 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020330 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020331 return NULL;
20332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020333 ssize_t _children_capacity = 1;
20334 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020335 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020336 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020337 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020338 return NULL;
20339 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020340 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 -070020341 NameDefaultPair* lambda_param_with_default_var;
20342 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020343 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020344 )
20345 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020346 _res = lambda_param_with_default_var;
20347 if (_n == _children_capacity) {
20348 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020349 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20350 if (!_new_children) {
20351 p->error_indicator = 1;
20352 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020353 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020354 return NULL;
20355 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020356 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020358 _children[_n++] = _res;
20359 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020360 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020361 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020362 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020365 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20366 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020367 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020368 p->error_indicator = 1;
20369 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020370 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020371 return NULL;
20372 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020373 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20374 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020375 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020376 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020377 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020378}
20379
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020380// _loop1_81: lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020381static asdl_seq *
20382_loop1_81_rule(Parser *p)
20383{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020384 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020385 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020386 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020387 return NULL;
20388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020389 void *_res = NULL;
20390 int _mark = p->mark;
20391 int _start_mark = p->mark;
20392 void **_children = PyMem_Malloc(sizeof(void *));
20393 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020394 p->error_indicator = 1;
20395 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020396 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020397 return NULL;
20398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020399 ssize_t _children_capacity = 1;
20400 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020401 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020402 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020403 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020404 return NULL;
20405 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020406 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20407 NameDefaultPair* lambda_param_with_default_var;
Guido van Rossum3941d972020-05-01 09:42:03 -070020408 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020409 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020410 )
20411 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020412 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020413 if (_n == _children_capacity) {
20414 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020415 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20416 if (!_new_children) {
20417 p->error_indicator = 1;
20418 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020419 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020420 return NULL;
20421 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020422 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020424 _children[_n++] = _res;
20425 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020427 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020428 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020431 if (_n == 0 || p->error_indicator) {
20432 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020433 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020434 return NULL;
20435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020436 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20437 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020438 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020439 p->error_indicator = 1;
20440 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020441 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020442 return NULL;
20443 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020444 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20445 PyMem_Free(_children);
20446 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020447 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020448 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020449}
20450
20451// _loop1_82: lambda_param_no_default
20452static asdl_seq *
20453_loop1_82_rule(Parser *p)
20454{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020455 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020456 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020457 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020458 return NULL;
20459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020460 void *_res = NULL;
20461 int _mark = p->mark;
20462 int _start_mark = p->mark;
20463 void **_children = PyMem_Malloc(sizeof(void *));
20464 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020465 p->error_indicator = 1;
20466 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020467 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020468 return NULL;
20469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020470 ssize_t _children_capacity = 1;
20471 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020472 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020473 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020474 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020475 return NULL;
20476 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020477 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 -070020478 arg_ty lambda_param_no_default_var;
20479 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020480 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020481 )
20482 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020483 _res = lambda_param_no_default_var;
20484 if (_n == _children_capacity) {
20485 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020486 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20487 if (!_new_children) {
20488 p->error_indicator = 1;
20489 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020490 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020491 return NULL;
20492 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020493 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020495 _children[_n++] = _res;
20496 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020498 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020499 D(fprintf(stderr, "%*c%s _loop1_82[%d-%d]: %s failed!\n", p->level, ' ',
20500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020502 if (_n == 0 || p->error_indicator) {
20503 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020504 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020505 return NULL;
20506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020507 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20508 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020509 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020510 p->error_indicator = 1;
20511 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020512 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020513 return NULL;
20514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020515 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20516 PyMem_Free(_children);
20517 _PyPegen_insert_memo(p, _start_mark, _loop1_82_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020518 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020519 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020520}
20521
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020522// _loop1_83: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020523static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020524_loop1_83_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020525{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020526 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020527 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020528 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020529 return NULL;
20530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020531 void *_res = NULL;
20532 int _mark = p->mark;
20533 int _start_mark = p->mark;
20534 void **_children = PyMem_Malloc(sizeof(void *));
20535 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020536 p->error_indicator = 1;
20537 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020538 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020539 return NULL;
20540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020541 ssize_t _children_capacity = 1;
20542 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020543 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020545 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020546 return NULL;
20547 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020548 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 -070020549 arg_ty lambda_param_no_default_var;
20550 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020551 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020552 )
20553 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020554 _res = lambda_param_no_default_var;
20555 if (_n == _children_capacity) {
20556 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020557 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20558 if (!_new_children) {
20559 p->error_indicator = 1;
20560 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020561 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020562 return NULL;
20563 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020564 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020566 _children[_n++] = _res;
20567 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020569 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020570 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020573 if (_n == 0 || p->error_indicator) {
20574 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020575 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020576 return NULL;
20577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020578 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20579 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020580 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020581 p->error_indicator = 1;
20582 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020583 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020584 return NULL;
20585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020586 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20587 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020588 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020589 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020590 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020591}
20592
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020593// _loop0_84: lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020594static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020595_loop0_84_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070020596{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020597 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020598 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020599 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020600 return NULL;
20601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020602 void *_res = NULL;
20603 int _mark = p->mark;
20604 int _start_mark = p->mark;
20605 void **_children = PyMem_Malloc(sizeof(void *));
20606 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020607 p->error_indicator = 1;
20608 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020609 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020610 return NULL;
20611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020612 ssize_t _children_capacity = 1;
20613 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020614 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020615 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020616 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020617 return NULL;
20618 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020619 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 -070020620 arg_ty lambda_param_no_default_var;
20621 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020622 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020623 )
20624 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020625 _res = lambda_param_no_default_var;
20626 if (_n == _children_capacity) {
20627 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020628 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20629 if (!_new_children) {
20630 p->error_indicator = 1;
20631 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020632 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020633 return NULL;
20634 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020635 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020637 _children[_n++] = _res;
20638 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020640 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020641 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020644 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20645 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020646 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020647 p->error_indicator = 1;
20648 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020649 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020650 return NULL;
20651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020652 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20653 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020654 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020655 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020656 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020657}
20658
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020659// _loop1_85: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020660static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020661_loop1_85_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020662{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020663 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020664 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020665 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020666 return NULL;
20667 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020668 void *_res = NULL;
20669 int _mark = p->mark;
20670 int _start_mark = p->mark;
20671 void **_children = PyMem_Malloc(sizeof(void *));
20672 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020673 p->error_indicator = 1;
20674 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020675 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020676 return NULL;
20677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020678 ssize_t _children_capacity = 1;
20679 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020680 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020681 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020682 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020683 return NULL;
20684 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020685 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 -070020686 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020687 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020688 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020689 )
20690 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020691 _res = lambda_param_with_default_var;
20692 if (_n == _children_capacity) {
20693 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020694 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20695 if (!_new_children) {
20696 p->error_indicator = 1;
20697 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020698 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020699 return NULL;
20700 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020701 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020703 _children[_n++] = _res;
20704 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020706 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020707 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020710 if (_n == 0 || p->error_indicator) {
20711 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020712 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020713 return NULL;
20714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020715 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20716 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020717 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020718 p->error_indicator = 1;
20719 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020720 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020721 return NULL;
20722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020723 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20724 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020725 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020726 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020727 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020728}
20729
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020730// _loop0_86: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020731static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020732_loop0_86_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020733{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020734 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020735 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020736 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020737 return NULL;
20738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020739 void *_res = NULL;
20740 int _mark = p->mark;
20741 int _start_mark = p->mark;
20742 void **_children = PyMem_Malloc(sizeof(void *));
20743 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020744 p->error_indicator = 1;
20745 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020746 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020747 return NULL;
20748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020749 ssize_t _children_capacity = 1;
20750 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020751 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020752 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020753 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020754 return NULL;
20755 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020756 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20757 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020758 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020759 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020760 )
20761 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020762 _res = lambda_param_no_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020763 if (_n == _children_capacity) {
20764 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020765 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20766 if (!_new_children) {
20767 p->error_indicator = 1;
20768 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020769 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020770 return NULL;
20771 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020772 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020774 _children[_n++] = _res;
20775 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020777 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020778 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
20779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020780 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020781 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20782 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020783 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020784 p->error_indicator = 1;
20785 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020786 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020787 return NULL;
20788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020789 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20790 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020791 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020792 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020793 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020794}
20795
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020796// _loop1_87: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020797static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020798_loop1_87_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020799{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020800 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020802 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020803 return NULL;
20804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020805 void *_res = NULL;
20806 int _mark = p->mark;
20807 int _start_mark = p->mark;
20808 void **_children = PyMem_Malloc(sizeof(void *));
20809 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020810 p->error_indicator = 1;
20811 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020812 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020813 return NULL;
20814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020815 ssize_t _children_capacity = 1;
20816 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020817 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020818 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020819 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020820 return NULL;
20821 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020822 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20823 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020824 while (
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020825 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020826 )
20827 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020828 _res = lambda_param_with_default_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020829 if (_n == _children_capacity) {
20830 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020831 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20832 if (!_new_children) {
20833 p->error_indicator = 1;
20834 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020836 return NULL;
20837 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020838 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020840 _children[_n++] = _res;
20841 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020843 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020844 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
20845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020847 if (_n == 0 || p->error_indicator) {
20848 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020849 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020850 return NULL;
20851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020852 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20853 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020854 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020855 p->error_indicator = 1;
20856 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020857 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020858 return NULL;
20859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020860 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20861 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020862 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020863 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020864 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020865}
20866
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020867// _loop0_88: lambda_param_maybe_default
20868static asdl_seq *
20869_loop0_88_rule(Parser *p)
20870{
20871 D(p->level++);
20872 if (p->error_indicator) {
20873 D(p->level--);
20874 return NULL;
20875 }
20876 void *_res = NULL;
20877 int _mark = p->mark;
20878 int _start_mark = p->mark;
20879 void **_children = PyMem_Malloc(sizeof(void *));
20880 if (!_children) {
20881 p->error_indicator = 1;
20882 PyErr_NoMemory();
20883 D(p->level--);
20884 return NULL;
20885 }
20886 ssize_t _children_capacity = 1;
20887 ssize_t _n = 0;
20888 { // lambda_param_maybe_default
20889 if (p->error_indicator) {
20890 D(p->level--);
20891 return NULL;
20892 }
20893 D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20894 NameDefaultPair* lambda_param_maybe_default_var;
20895 while (
20896 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
20897 )
20898 {
20899 _res = lambda_param_maybe_default_var;
20900 if (_n == _children_capacity) {
20901 _children_capacity *= 2;
20902 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20903 if (!_new_children) {
20904 p->error_indicator = 1;
20905 PyErr_NoMemory();
20906 D(p->level--);
20907 return NULL;
20908 }
20909 _children = _new_children;
20910 }
20911 _children[_n++] = _res;
20912 _mark = p->mark;
20913 }
20914 p->mark = _mark;
20915 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
20916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
20917 }
20918 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20919 if (!_seq) {
20920 PyMem_Free(_children);
20921 p->error_indicator = 1;
20922 PyErr_NoMemory();
20923 D(p->level--);
20924 return NULL;
20925 }
20926 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20927 PyMem_Free(_children);
20928 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
20929 D(p->level--);
20930 return _seq;
20931}
20932
20933// _loop1_89: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020934static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020935_loop1_89_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020936{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020937 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020938 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020939 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020940 return NULL;
20941 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020942 void *_res = NULL;
20943 int _mark = p->mark;
20944 int _start_mark = p->mark;
20945 void **_children = PyMem_Malloc(sizeof(void *));
20946 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020947 p->error_indicator = 1;
20948 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020949 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020950 return NULL;
20951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020952 ssize_t _children_capacity = 1;
20953 ssize_t _n = 0;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030020954 { // lambda_param_maybe_default
20955 if (p->error_indicator) {
20956 D(p->level--);
20957 return NULL;
20958 }
20959 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20960 NameDefaultPair* lambda_param_maybe_default_var;
20961 while (
20962 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
20963 )
20964 {
20965 _res = lambda_param_maybe_default_var;
20966 if (_n == _children_capacity) {
20967 _children_capacity *= 2;
20968 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20969 if (!_new_children) {
20970 p->error_indicator = 1;
20971 PyErr_NoMemory();
20972 D(p->level--);
20973 return NULL;
20974 }
20975 _children = _new_children;
20976 }
20977 _children[_n++] = _res;
20978 _mark = p->mark;
20979 }
20980 p->mark = _mark;
20981 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
20982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
20983 }
20984 if (_n == 0 || p->error_indicator) {
20985 PyMem_Free(_children);
20986 D(p->level--);
20987 return NULL;
20988 }
20989 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20990 if (!_seq) {
20991 PyMem_Free(_children);
20992 p->error_indicator = 1;
20993 PyErr_NoMemory();
20994 D(p->level--);
20995 return NULL;
20996 }
20997 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20998 PyMem_Free(_children);
20999 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
21000 D(p->level--);
21001 return _seq;
21002}
21003
21004// _loop1_90: ('or' conjunction)
21005static asdl_seq *
21006_loop1_90_rule(Parser *p)
21007{
21008 D(p->level++);
21009 if (p->error_indicator) {
21010 D(p->level--);
21011 return NULL;
21012 }
21013 void *_res = NULL;
21014 int _mark = p->mark;
21015 int _start_mark = p->mark;
21016 void **_children = PyMem_Malloc(sizeof(void *));
21017 if (!_children) {
21018 p->error_indicator = 1;
21019 PyErr_NoMemory();
21020 D(p->level--);
21021 return NULL;
21022 }
21023 ssize_t _children_capacity = 1;
21024 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021025 { // ('or' conjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021026 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021027 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021028 return NULL;
21029 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021030 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021031 void *_tmp_145_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021032 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021033 (_tmp_145_var = _tmp_145_rule(p)) // 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021034 )
21035 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021036 _res = _tmp_145_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021037 if (_n == _children_capacity) {
21038 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021039 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21040 if (!_new_children) {
21041 p->error_indicator = 1;
21042 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021043 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021044 return NULL;
21045 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021046 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021047 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021048 _children[_n++] = _res;
21049 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021051 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021052 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021055 if (_n == 0 || p->error_indicator) {
21056 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021057 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021058 return NULL;
21059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021060 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21061 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021062 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021063 p->error_indicator = 1;
21064 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021065 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021066 return NULL;
21067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021068 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21069 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021070 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021071 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021072 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021073}
21074
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021075// _loop1_91: ('and' inversion)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021076static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021077_loop1_91_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021078{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021079 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021080 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021081 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021082 return NULL;
21083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021084 void *_res = NULL;
21085 int _mark = p->mark;
21086 int _start_mark = p->mark;
21087 void **_children = PyMem_Malloc(sizeof(void *));
21088 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021089 p->error_indicator = 1;
21090 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021091 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021092 return NULL;
21093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021094 ssize_t _children_capacity = 1;
21095 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021096 { // ('and' inversion)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021098 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021099 return NULL;
21100 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021101 D(fprintf(stderr, "%*c> _loop1_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021102 void *_tmp_146_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021103 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021104 (_tmp_146_var = _tmp_146_rule(p)) // 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021105 )
21106 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010021107 _res = _tmp_146_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021108 if (_n == _children_capacity) {
21109 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021110 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21111 if (!_new_children) {
21112 p->error_indicator = 1;
21113 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021114 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021115 return NULL;
21116 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021117 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021118 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021119 _children[_n++] = _res;
21120 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021122 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021123 D(fprintf(stderr, "%*c%s _loop1_91[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021126 if (_n == 0 || p->error_indicator) {
21127 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021128 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021129 return NULL;
21130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021131 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21132 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021133 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021134 p->error_indicator = 1;
21135 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021136 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021137 return NULL;
21138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021139 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21140 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021141 _PyPegen_insert_memo(p, _start_mark, _loop1_91_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021142 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021143 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021144}
21145
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021146// _loop1_92: compare_op_bitwise_or_pair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021147static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021148_loop1_92_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021149{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021150 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021151 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021152 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021153 return NULL;
21154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021155 void *_res = NULL;
21156 int _mark = p->mark;
21157 int _start_mark = p->mark;
21158 void **_children = PyMem_Malloc(sizeof(void *));
21159 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021160 p->error_indicator = 1;
21161 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021162 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021163 return NULL;
21164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021165 ssize_t _children_capacity = 1;
21166 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021167 { // compare_op_bitwise_or_pair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021169 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021170 return NULL;
21171 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021172 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 +010021173 CmpopExprPair* compare_op_bitwise_or_pair_var;
21174 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021175 (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 +010021176 )
21177 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021178 _res = compare_op_bitwise_or_pair_var;
21179 if (_n == _children_capacity) {
21180 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021181 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21182 if (!_new_children) {
21183 p->error_indicator = 1;
21184 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021185 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021186 return NULL;
21187 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021188 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021190 _children[_n++] = _res;
21191 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021192 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021193 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021194 D(fprintf(stderr, "%*c%s _loop1_92[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021197 if (_n == 0 || p->error_indicator) {
21198 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021199 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021200 return NULL;
21201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021202 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21203 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021204 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021205 p->error_indicator = 1;
21206 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021207 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021208 return NULL;
21209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021210 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21211 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021212 _PyPegen_insert_memo(p, _start_mark, _loop1_92_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021213 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021214 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021215}
21216
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021217// _tmp_93: '!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021218static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021219_tmp_93_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021220{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021221 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021222 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021223 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021224 return NULL;
21225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021226 void * _res = NULL;
21227 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021228 { // '!='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021229 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021230 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021231 return NULL;
21232 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021233 D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010021234 Token * tok;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021235 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021236 (tok = _PyPegen_expect_token(p, 28)) // token='!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010021237 )
21238 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021239 D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021240 _res = _PyPegen_check_barry_as_flufl ( p ) ? NULL : tok;
21241 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindo2b74c832020-04-27 18:02:07 +010021242 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021243 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021244 return NULL;
21245 }
21246 goto done;
21247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021248 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021249 D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010021251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021252 _res = NULL;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021253 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021254 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021255 return _res;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021256}
21257
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021258// _loop0_95: ',' slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021259static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021260_loop0_95_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021261{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021262 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021263 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021264 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021265 return NULL;
21266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021267 void *_res = NULL;
21268 int _mark = p->mark;
21269 int _start_mark = p->mark;
21270 void **_children = PyMem_Malloc(sizeof(void *));
21271 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021272 p->error_indicator = 1;
21273 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021274 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021275 return NULL;
21276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021277 ssize_t _children_capacity = 1;
21278 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021279 { // ',' slice
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021280 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021281 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021282 return NULL;
21283 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021284 D(fprintf(stderr, "%*c> _loop0_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021285 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021286 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021287 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021288 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021289 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021290 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021291 )
21292 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021293 _res = elem;
21294 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021295 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021296 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021298 return NULL;
21299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021300 if (_n == _children_capacity) {
21301 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021302 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21303 if (!_new_children) {
21304 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021309 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021310 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021311 _children[_n++] = _res;
21312 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021314 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021315 D(fprintf(stderr, "%*c%s _loop0_95[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021317 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021318 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21319 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021320 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021321 p->error_indicator = 1;
21322 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021323 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021324 return NULL;
21325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021326 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21327 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021328 _PyPegen_insert_memo(p, _start_mark, _loop0_95_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021329 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021330 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021331}
21332
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021333// _gather_94: slice _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021334static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021335_gather_94_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021336{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021337 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021339 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021340 return NULL;
21341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021342 asdl_seq * _res = NULL;
21343 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021344 { // slice _loop0_95
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021345 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021346 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021347 return NULL;
21348 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021349 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 +010021350 expr_ty elem;
21351 asdl_seq * seq;
21352 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021353 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021354 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021355 (seq = _loop0_95_rule(p)) // _loop0_95
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021356 )
21357 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021358 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 +010021359 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021360 goto done;
21361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021362 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021363 D(fprintf(stderr, "%*c%s _gather_94[%d-%d]: %s failed!\n", p->level, ' ',
21364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_95"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021365 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021366 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021367 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021368 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021369 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021370}
21371
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021372// _tmp_96: ':' expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021373static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021374_tmp_96_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021375{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021376 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021377 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021378 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021379 return NULL;
21380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021381 void * _res = NULL;
21382 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021383 { // ':' expression?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021384 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021385 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021386 return NULL;
21387 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021388 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021389 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021390 void *d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021391 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021392 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021393 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021394 (d = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021395 )
21396 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021397 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021398 _res = d;
21399 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021400 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021402 return NULL;
21403 }
21404 goto done;
21405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021406 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021407 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021409 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021410 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021411 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021412 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021413 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021414}
21415
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021416// _tmp_97: tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021417static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021418_tmp_97_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021419{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021420 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021421 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021422 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021423 return NULL;
21424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021425 void * _res = NULL;
21426 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021427 { // tuple
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021428 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021429 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021430 return NULL;
21431 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021432 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021433 expr_ty tuple_var;
21434 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021435 (tuple_var = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021436 )
21437 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021438 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021439 _res = tuple_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021440 goto done;
21441 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021442 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021443 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021445 }
21446 { // group
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021447 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021448 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021449 return NULL;
21450 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021451 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021452 expr_ty group_var;
21453 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021454 (group_var = group_rule(p)) // group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021455 )
21456 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021457 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021458 _res = group_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021459 goto done;
21460 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021461 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021462 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021464 }
21465 { // genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021466 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021467 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021468 return NULL;
21469 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021470 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021471 expr_ty genexp_var;
21472 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021473 (genexp_var = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021474 )
21475 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021476 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021477 _res = genexp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021478 goto done;
21479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021480 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021481 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021484 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021485 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021486 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021487 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021488}
21489
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021490// _tmp_98: list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021491static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021492_tmp_98_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021493{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021494 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021495 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021496 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021497 return NULL;
21498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021499 void * _res = NULL;
21500 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021501 { // list
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021502 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021503 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021504 return NULL;
21505 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021506 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021507 expr_ty list_var;
21508 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021509 (list_var = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021510 )
21511 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021512 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021513 _res = list_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021514 goto done;
21515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021516 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021517 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021519 }
21520 { // listcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021521 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021522 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021523 return NULL;
21524 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021525 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021526 expr_ty listcomp_var;
21527 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021528 (listcomp_var = listcomp_rule(p)) // listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021529 )
21530 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021531 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021532 _res = listcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021533 goto done;
21534 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021535 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021536 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021539 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021540 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021541 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021542 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021543}
21544
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021545// _tmp_99: dict | set | dictcomp | setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021546static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021547_tmp_99_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021548{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021549 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021550 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021551 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021552 return NULL;
21553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021554 void * _res = NULL;
21555 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021556 { // dict
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021558 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021559 return NULL;
21560 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021561 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021562 expr_ty dict_var;
21563 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021564 (dict_var = dict_rule(p)) // dict
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021565 )
21566 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021567 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021568 _res = dict_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021569 goto done;
21570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021571 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021572 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021574 }
21575 { // set
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021578 return NULL;
21579 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021580 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021581 expr_ty set_var;
21582 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021583 (set_var = set_rule(p)) // set
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021584 )
21585 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021586 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021587 _res = set_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021588 goto done;
21589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021590 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021591 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021593 }
21594 { // dictcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021595 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021596 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021597 return NULL;
21598 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021599 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021600 expr_ty dictcomp_var;
21601 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021602 (dictcomp_var = dictcomp_rule(p)) // dictcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021603 )
21604 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021605 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021606 _res = dictcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021607 goto done;
21608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021609 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021610 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021612 }
21613 { // setcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021614 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021615 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021616 return NULL;
21617 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021618 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021619 expr_ty setcomp_var;
21620 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021621 (setcomp_var = setcomp_rule(p)) // setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021622 )
21623 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021624 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021625 _res = setcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021626 goto done;
21627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021628 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021629 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021632 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021633 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021634 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021635 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021636}
21637
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021638// _loop1_100: STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021639static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021640_loop1_100_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021641{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021642 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021643 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021644 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021645 return NULL;
21646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021647 void *_res = NULL;
21648 int _mark = p->mark;
21649 int _start_mark = p->mark;
21650 void **_children = PyMem_Malloc(sizeof(void *));
21651 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021652 p->error_indicator = 1;
21653 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021654 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021655 return NULL;
21656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021657 ssize_t _children_capacity = 1;
21658 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021659 { // STRING
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021660 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021661 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021662 return NULL;
21663 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021664 D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021665 expr_ty string_var;
21666 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021667 (string_var = _PyPegen_string_token(p)) // STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021668 )
21669 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021670 _res = string_var;
21671 if (_n == _children_capacity) {
21672 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021673 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21674 if (!_new_children) {
21675 p->error_indicator = 1;
21676 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021677 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021678 return NULL;
21679 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021680 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021682 _children[_n++] = _res;
21683 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021684 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021685 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021686 D(fprintf(stderr, "%*c%s _loop1_100[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021689 if (_n == 0 || p->error_indicator) {
21690 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021691 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021692 return NULL;
21693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021694 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21695 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021696 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021697 p->error_indicator = 1;
21698 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021699 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021700 return NULL;
21701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021702 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21703 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021704 _PyPegen_insert_memo(p, _start_mark, _loop1_100_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021705 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021706 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021707}
21708
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021709// _tmp_101: star_named_expression ',' star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021710static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021711_tmp_101_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021712{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021713 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021715 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021716 return NULL;
21717 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021718 void * _res = NULL;
21719 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021720 { // star_named_expression ',' star_named_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021721 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021722 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021723 return NULL;
21724 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021725 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 +010021726 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021727 expr_ty y;
21728 void *z;
21729 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021730 (y = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021731 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021732 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021733 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021734 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021735 )
21736 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021737 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 +010021738 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21739 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021740 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021741 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021742 return NULL;
21743 }
21744 goto done;
21745 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021746 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021747 D(fprintf(stderr, "%*c%s _tmp_101[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021749 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021750 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021751 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021752 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021753 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021754}
21755
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021756// _tmp_102: yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021757static void *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021758_tmp_102_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021759{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021760 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021761 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021762 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021763 return NULL;
21764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021765 void * _res = NULL;
21766 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021767 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021768 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021769 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021770 return NULL;
21771 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021772 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021773 expr_ty yield_expr_var;
21774 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021775 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021776 )
21777 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021778 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 +010021779 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021780 goto done;
21781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021782 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021783 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021785 }
21786 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021787 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021788 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021789 return NULL;
21790 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021791 D(fprintf(stderr, "%*c> _tmp_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021792 expr_ty named_expression_var;
21793 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021794 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021795 )
21796 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021797 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 +010021798 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021799 goto done;
21800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021801 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021802 D(fprintf(stderr, "%*c%s _tmp_102[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021805 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021806 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021807 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021808 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021809}
21810
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021811// _loop0_104: ',' double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021812static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021813_loop0_104_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021814{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021815 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021816 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021817 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021818 return NULL;
21819 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021820 void *_res = NULL;
21821 int _mark = p->mark;
21822 int _start_mark = p->mark;
21823 void **_children = PyMem_Malloc(sizeof(void *));
21824 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021825 p->error_indicator = 1;
21826 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021827 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021828 return NULL;
21829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021830 ssize_t _children_capacity = 1;
21831 ssize_t _n = 0;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021832 { // ',' double_starred_kvpair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021833 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021834 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021835 return NULL;
21836 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021837 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 +010021838 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021839 KeyValuePair* elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021840 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021841 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021842 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021843 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021844 )
21845 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021846 _res = elem;
21847 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021848 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021849 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021850 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021851 return NULL;
21852 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021853 if (_n == _children_capacity) {
21854 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021855 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21856 if (!_new_children) {
21857 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021862 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021864 _children[_n++] = _res;
21865 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021867 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021868 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021871 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21872 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021873 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021874 p->error_indicator = 1;
21875 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021876 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021877 return NULL;
21878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021879 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21880 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021881 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021882 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021883 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021884}
21885
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021886// _gather_103: double_starred_kvpair _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021887static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021888_gather_103_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021889{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021890 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021891 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021892 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021893 return NULL;
21894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021895 asdl_seq * _res = NULL;
21896 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021897 { // double_starred_kvpair _loop0_104
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021898 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021899 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021900 return NULL;
21901 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021902 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 +010021903 KeyValuePair* elem;
21904 asdl_seq * seq;
21905 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021906 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021907 &&
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021908 (seq = _loop0_104_rule(p)) // _loop0_104
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021909 )
21910 {
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021911 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 +010021912 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021913 goto done;
21914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021915 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021916 D(fprintf(stderr, "%*c%s _gather_103[%d-%d]: %s failed!\n", p->level, ' ',
21917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_104"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021918 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021919 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021920 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021921 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021922 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021923}
21924
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021925// _loop1_105: for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021926static asdl_seq *
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021927_loop1_105_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021928{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021929 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021930 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021931 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021932 return NULL;
21933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021934 void *_res = NULL;
21935 int _mark = p->mark;
21936 int _start_mark = p->mark;
21937 void **_children = PyMem_Malloc(sizeof(void *));
21938 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021939 p->error_indicator = 1;
21940 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021941 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021942 return NULL;
21943 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021944 ssize_t _children_capacity = 1;
21945 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021946 { // for_if_clause
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021947 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021948 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021949 return NULL;
21950 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021951 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 +030021952 comprehension_ty for_if_clause_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021953 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021954 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021955 )
21956 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021957 _res = for_if_clause_var;
21958 if (_n == _children_capacity) {
21959 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021960 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21961 if (!_new_children) {
21962 p->error_indicator = 1;
21963 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021964 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021965 return NULL;
21966 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021967 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021969 _children[_n++] = _res;
21970 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021972 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021973 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021976 if (_n == 0 || p->error_indicator) {
21977 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021978 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021979 return NULL;
21980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021981 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21982 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021983 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021984 p->error_indicator = 1;
21985 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021987 return NULL;
21988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021989 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21990 PyMem_Free(_children);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030021991 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021992 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021993 return _seq;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021994}
21995
Guido van Rossum3941d972020-05-01 09:42:03 -070021996// _loop0_106: ('if' disjunction)
Guido van Rossumc001c092020-04-30 12:12:19 -070021997static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021998_loop0_106_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070021999{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022000 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022001 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022002 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022003 return NULL;
22004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022005 void *_res = NULL;
22006 int _mark = p->mark;
22007 int _start_mark = p->mark;
22008 void **_children = PyMem_Malloc(sizeof(void *));
22009 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022010 p->error_indicator = 1;
22011 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022012 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022013 return NULL;
22014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022015 ssize_t _children_capacity = 1;
22016 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022017 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022018 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022019 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022020 return NULL;
22021 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022022 D(fprintf(stderr, "%*c> _loop0_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022023 void *_tmp_147_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022024 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022025 (_tmp_147_var = _tmp_147_rule(p)) // 'if' disjunction
Guido van Rossumc001c092020-04-30 12:12:19 -070022026 )
22027 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022028 _res = _tmp_147_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022029 if (_n == _children_capacity) {
22030 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022031 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22032 if (!_new_children) {
22033 p->error_indicator = 1;
22034 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022035 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022036 return NULL;
22037 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022038 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022040 _children[_n++] = _res;
22041 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022043 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022044 D(fprintf(stderr, "%*c%s _loop0_106[%d-%d]: %s failed!\n", p->level, ' ',
22045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022046 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022047 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22048 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022049 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022050 p->error_indicator = 1;
22051 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022052 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022053 return NULL;
22054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022055 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22056 PyMem_Free(_children);
22057 _PyPegen_insert_memo(p, _start_mark, _loop0_106_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022058 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022059 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022060}
22061
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022062// _loop0_107: ('if' disjunction)
22063static asdl_seq *
22064_loop0_107_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022065{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022066 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022067 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022068 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022069 return NULL;
22070 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022071 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022072 int _mark = p->mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022073 int _start_mark = p->mark;
22074 void **_children = PyMem_Malloc(sizeof(void *));
22075 if (!_children) {
22076 p->error_indicator = 1;
22077 PyErr_NoMemory();
22078 D(p->level--);
22079 return NULL;
22080 }
22081 ssize_t _children_capacity = 1;
22082 ssize_t _n = 0;
22083 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022085 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022086 return NULL;
22087 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022088 D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022089 void *_tmp_148_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022090 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022091 (_tmp_148_var = _tmp_148_rule(p)) // 'if' disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022092 )
22093 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022094 _res = _tmp_148_var;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022095 if (_n == _children_capacity) {
22096 _children_capacity *= 2;
22097 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22098 if (!_new_children) {
22099 p->error_indicator = 1;
22100 PyErr_NoMemory();
22101 D(p->level--);
22102 return NULL;
22103 }
22104 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022105 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022106 _children[_n++] = _res;
22107 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022109 p->mark = _mark;
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022110 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
22111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022112 }
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022113 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22114 if (!_seq) {
22115 PyMem_Free(_children);
22116 p->error_indicator = 1;
22117 PyErr_NoMemory();
22118 D(p->level--);
22119 return NULL;
22120 }
22121 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22122 PyMem_Free(_children);
22123 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022124 D(p->level--);
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022125 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022126}
22127
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022128// _loop0_109: ',' (starred_expression | named_expression !'=')
Guido van Rossum3941d972020-05-01 09:42:03 -070022129static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022130_loop0_109_rule(Parser *p)
22131{
22132 D(p->level++);
22133 if (p->error_indicator) {
22134 D(p->level--);
22135 return NULL;
22136 }
22137 void *_res = NULL;
22138 int _mark = p->mark;
22139 int _start_mark = p->mark;
22140 void **_children = PyMem_Malloc(sizeof(void *));
22141 if (!_children) {
22142 p->error_indicator = 1;
22143 PyErr_NoMemory();
22144 D(p->level--);
22145 return NULL;
22146 }
22147 ssize_t _children_capacity = 1;
22148 ssize_t _n = 0;
22149 { // ',' (starred_expression | named_expression !'=')
22150 if (p->error_indicator) {
22151 D(p->level--);
22152 return NULL;
22153 }
22154 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22155 Token * _literal;
22156 void *elem;
22157 while (
22158 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22159 &&
22160 (elem = _tmp_149_rule(p)) // starred_expression | named_expression !'='
22161 )
22162 {
22163 _res = elem;
22164 if (_res == NULL && PyErr_Occurred()) {
22165 p->error_indicator = 1;
22166 PyMem_Free(_children);
22167 D(p->level--);
22168 return NULL;
22169 }
22170 if (_n == _children_capacity) {
22171 _children_capacity *= 2;
22172 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22173 if (!_new_children) {
22174 p->error_indicator = 1;
22175 PyErr_NoMemory();
22176 D(p->level--);
22177 return NULL;
22178 }
22179 _children = _new_children;
22180 }
22181 _children[_n++] = _res;
22182 _mark = p->mark;
22183 }
22184 p->mark = _mark;
22185 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
22186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22187 }
22188 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22189 if (!_seq) {
22190 PyMem_Free(_children);
22191 p->error_indicator = 1;
22192 PyErr_NoMemory();
22193 D(p->level--);
22194 return NULL;
22195 }
22196 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22197 PyMem_Free(_children);
22198 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
22199 D(p->level--);
22200 return _seq;
22201}
22202
22203// _gather_108: (starred_expression | named_expression !'=') _loop0_109
22204static asdl_seq *
22205_gather_108_rule(Parser *p)
22206{
22207 D(p->level++);
22208 if (p->error_indicator) {
22209 D(p->level--);
22210 return NULL;
22211 }
22212 asdl_seq * _res = NULL;
22213 int _mark = p->mark;
22214 { // (starred_expression | named_expression !'=') _loop0_109
22215 if (p->error_indicator) {
22216 D(p->level--);
22217 return NULL;
22218 }
22219 D(fprintf(stderr, "%*c> _gather_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_109"));
22220 void *elem;
22221 asdl_seq * seq;
22222 if (
22223 (elem = _tmp_149_rule(p)) // starred_expression | named_expression !'='
22224 &&
22225 (seq = _loop0_109_rule(p)) // _loop0_109
22226 )
22227 {
22228 D(fprintf(stderr, "%*c+ _gather_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_109"));
22229 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22230 goto done;
22231 }
22232 p->mark = _mark;
22233 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
22234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_109"));
22235 }
22236 _res = NULL;
22237 done:
22238 D(p->level--);
22239 return _res;
22240}
22241
22242// _tmp_110: ',' kwargs
22243static void *
22244_tmp_110_rule(Parser *p)
22245{
22246 D(p->level++);
22247 if (p->error_indicator) {
22248 D(p->level--);
22249 return NULL;
22250 }
22251 void * _res = NULL;
22252 int _mark = p->mark;
22253 { // ',' kwargs
22254 if (p->error_indicator) {
22255 D(p->level--);
22256 return NULL;
22257 }
22258 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
22259 Token * _literal;
22260 asdl_seq* k;
22261 if (
22262 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22263 &&
22264 (k = kwargs_rule(p)) // kwargs
22265 )
22266 {
22267 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
22268 _res = k;
22269 if (_res == NULL && PyErr_Occurred()) {
22270 p->error_indicator = 1;
22271 D(p->level--);
22272 return NULL;
22273 }
22274 goto done;
22275 }
22276 p->mark = _mark;
22277 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
22278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22279 }
22280 _res = NULL;
22281 done:
22282 D(p->level--);
22283 return _res;
22284}
22285
22286// _loop0_112: ',' kwarg_or_starred
22287static asdl_seq *
22288_loop0_112_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022289{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022290 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022291 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022292 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022293 return NULL;
22294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022295 void *_res = NULL;
22296 int _mark = p->mark;
22297 int _start_mark = p->mark;
22298 void **_children = PyMem_Malloc(sizeof(void *));
22299 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022300 p->error_indicator = 1;
22301 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022302 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022303 return NULL;
22304 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022305 ssize_t _children_capacity = 1;
22306 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022307 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022308 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022309 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022310 return NULL;
22311 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022312 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022313 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022314 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022315 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022316 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022317 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022318 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022319 )
22320 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022321 _res = elem;
22322 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022323 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022324 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022325 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022326 return NULL;
22327 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022328 if (_n == _children_capacity) {
22329 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022330 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22331 if (!_new_children) {
22332 p->error_indicator = 1;
22333 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022334 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022335 return NULL;
22336 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022337 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022339 _children[_n++] = _res;
22340 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022342 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022343 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022346 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22347 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022348 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022349 p->error_indicator = 1;
22350 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022351 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022352 return NULL;
22353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022354 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22355 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022356 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022357 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022358 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022359}
22360
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022361// _gather_111: kwarg_or_starred _loop0_112
Guido van Rossum3941d972020-05-01 09:42:03 -070022362static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022363_gather_111_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022364{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022365 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022367 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022368 return NULL;
22369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022370 asdl_seq * _res = NULL;
22371 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022372 { // kwarg_or_starred _loop0_112
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022373 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022374 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022375 return NULL;
22376 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022377 D(fprintf(stderr, "%*c> _gather_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_112"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022378 KeywordOrStarred* elem;
22379 asdl_seq * seq;
22380 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022381 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022382 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022383 (seq = _loop0_112_rule(p)) // _loop0_112
Guido van Rossum3941d972020-05-01 09:42:03 -070022384 )
22385 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022386 D(fprintf(stderr, "%*c+ _gather_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_112"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022387 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022388 goto done;
22389 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022390 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022391 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
22392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_112"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022394 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022395 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022396 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022397 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022398}
22399
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022400// _loop0_114: ',' kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022401static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022402_loop0_114_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022403{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022404 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022406 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022407 return NULL;
22408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022409 void *_res = NULL;
22410 int _mark = p->mark;
22411 int _start_mark = p->mark;
22412 void **_children = PyMem_Malloc(sizeof(void *));
22413 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022414 p->error_indicator = 1;
22415 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022416 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022417 return NULL;
22418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022419 ssize_t _children_capacity = 1;
22420 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070022421 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022422 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022423 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022424 return NULL;
22425 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022426 D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022427 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070022428 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070022429 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022430 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070022431 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022432 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022433 )
22434 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022435 _res = elem;
22436 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070022437 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022438 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022439 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022440 return NULL;
22441 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022442 if (_n == _children_capacity) {
22443 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022444 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22445 if (!_new_children) {
22446 p->error_indicator = 1;
22447 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022448 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022449 return NULL;
22450 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022451 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070022452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022453 _children[_n++] = _res;
22454 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022456 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022457 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022460 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22461 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022462 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022463 p->error_indicator = 1;
22464 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022465 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022466 return NULL;
22467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022468 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22469 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022470 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022471 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022472 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070022473}
22474
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022475// _gather_113: kwarg_or_double_starred _loop0_114
Guido van Rossum3941d972020-05-01 09:42:03 -070022476static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022477_gather_113_rule(Parser *p)
Guido van Rossum3941d972020-05-01 09:42:03 -070022478{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022479 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070022480 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022481 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070022482 return NULL;
22483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022484 asdl_seq * _res = NULL;
22485 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022486 { // kwarg_or_double_starred _loop0_114
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022488 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022489 return NULL;
22490 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022491 D(fprintf(stderr, "%*c> _gather_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_114"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022492 KeywordOrStarred* elem;
22493 asdl_seq * seq;
22494 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022495 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070022496 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022497 (seq = _loop0_114_rule(p)) // _loop0_114
Guido van Rossum3941d972020-05-01 09:42:03 -070022498 )
22499 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022500 D(fprintf(stderr, "%*c+ _gather_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_114"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022501 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022502 goto done;
22503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022504 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022505 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
22506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_114"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022508 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022509 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022510 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022511 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022512}
22513
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022514// _loop0_116: ',' kwarg_or_starred
Pablo Galindo2b74c832020-04-27 18:02:07 +010022515static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022516_loop0_116_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022517{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022518 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022521 return NULL;
22522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022523 void *_res = NULL;
22524 int _mark = p->mark;
22525 int _start_mark = p->mark;
22526 void **_children = PyMem_Malloc(sizeof(void *));
22527 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022528 p->error_indicator = 1;
22529 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022530 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022531 return NULL;
22532 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022533 ssize_t _children_capacity = 1;
22534 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070022535 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022536 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022537 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022538 return NULL;
22539 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022540 D(fprintf(stderr, "%*c> _loop0_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022541 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022542 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022543 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022544 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022545 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022546 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022547 )
22548 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022549 _res = elem;
22550 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022551 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022552 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022553 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022554 return NULL;
22555 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022556 if (_n == _children_capacity) {
22557 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022558 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22559 if (!_new_children) {
22560 p->error_indicator = 1;
22561 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022562 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022563 return NULL;
22564 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022565 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022567 _children[_n++] = _res;
22568 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022570 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022571 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022574 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22575 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022576 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022577 p->error_indicator = 1;
22578 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022579 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022580 return NULL;
22581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022582 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22583 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022584 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022585 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022586 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022587}
22588
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022589// _gather_115: kwarg_or_starred _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022590static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022591_gather_115_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022592{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022593 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022594 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022595 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022596 return NULL;
22597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022598 asdl_seq * _res = NULL;
22599 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022600 { // kwarg_or_starred _loop0_116
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022603 return NULL;
22604 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022605 D(fprintf(stderr, "%*c> _gather_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_116"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022606 KeywordOrStarred* elem;
22607 asdl_seq * seq;
22608 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022609 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022610 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022611 (seq = _loop0_116_rule(p)) // _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022612 )
22613 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022614 D(fprintf(stderr, "%*c+ _gather_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_116"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022615 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022616 goto done;
22617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022618 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022619 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
22620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_116"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022622 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022623 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022624 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022625 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022626}
22627
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022628// _loop0_118: ',' kwarg_or_double_starred
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030022629static asdl_seq *
22630_loop0_118_rule(Parser *p)
22631{
22632 D(p->level++);
22633 if (p->error_indicator) {
22634 D(p->level--);
22635 return NULL;
22636 }
22637 void *_res = NULL;
22638 int _mark = p->mark;
22639 int _start_mark = p->mark;
22640 void **_children = PyMem_Malloc(sizeof(void *));
22641 if (!_children) {
22642 p->error_indicator = 1;
22643 PyErr_NoMemory();
22644 D(p->level--);
22645 return NULL;
22646 }
22647 ssize_t _children_capacity = 1;
22648 ssize_t _n = 0;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022649 { // ',' kwarg_or_double_starred
22650 if (p->error_indicator) {
22651 D(p->level--);
22652 return NULL;
22653 }
22654 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22655 Token * _literal;
22656 KeywordOrStarred* elem;
22657 while (
22658 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22659 &&
22660 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22661 )
22662 {
22663 _res = elem;
22664 if (_res == NULL && PyErr_Occurred()) {
22665 p->error_indicator = 1;
22666 PyMem_Free(_children);
22667 D(p->level--);
22668 return NULL;
22669 }
22670 if (_n == _children_capacity) {
22671 _children_capacity *= 2;
22672 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22673 if (!_new_children) {
22674 p->error_indicator = 1;
22675 PyErr_NoMemory();
22676 D(p->level--);
22677 return NULL;
22678 }
22679 _children = _new_children;
22680 }
22681 _children[_n++] = _res;
22682 _mark = p->mark;
22683 }
22684 p->mark = _mark;
22685 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
22686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
22687 }
22688 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22689 if (!_seq) {
22690 PyMem_Free(_children);
22691 p->error_indicator = 1;
22692 PyErr_NoMemory();
22693 D(p->level--);
22694 return NULL;
22695 }
22696 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22697 PyMem_Free(_children);
22698 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
22699 D(p->level--);
22700 return _seq;
22701}
22702
22703// _gather_117: kwarg_or_double_starred _loop0_118
22704static asdl_seq *
22705_gather_117_rule(Parser *p)
22706{
22707 D(p->level++);
22708 if (p->error_indicator) {
22709 D(p->level--);
22710 return NULL;
22711 }
22712 asdl_seq * _res = NULL;
22713 int _mark = p->mark;
22714 { // kwarg_or_double_starred _loop0_118
22715 if (p->error_indicator) {
22716 D(p->level--);
22717 return NULL;
22718 }
22719 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_118"));
22720 KeywordOrStarred* elem;
22721 asdl_seq * seq;
22722 if (
22723 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22724 &&
22725 (seq = _loop0_118_rule(p)) // _loop0_118
22726 )
22727 {
22728 D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_118"));
22729 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22730 goto done;
22731 }
22732 p->mark = _mark;
22733 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
22734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_118"));
22735 }
22736 _res = NULL;
22737 done:
22738 D(p->level--);
22739 return _res;
22740}
22741
22742// _loop0_119: (',' star_target)
22743static asdl_seq *
22744_loop0_119_rule(Parser *p)
22745{
22746 D(p->level++);
22747 if (p->error_indicator) {
22748 D(p->level--);
22749 return NULL;
22750 }
22751 void *_res = NULL;
22752 int _mark = p->mark;
22753 int _start_mark = p->mark;
22754 void **_children = PyMem_Malloc(sizeof(void *));
22755 if (!_children) {
22756 p->error_indicator = 1;
22757 PyErr_NoMemory();
22758 D(p->level--);
22759 return NULL;
22760 }
22761 ssize_t _children_capacity = 1;
22762 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022763 { // (',' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022764 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022765 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022766 return NULL;
22767 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022768 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
22769 void *_tmp_150_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022770 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022771 (_tmp_150_var = _tmp_150_rule(p)) // ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022772 )
22773 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022774 _res = _tmp_150_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022775 if (_n == _children_capacity) {
22776 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022777 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22778 if (!_new_children) {
22779 p->error_indicator = 1;
22780 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022781 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022782 return NULL;
22783 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022784 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022786 _children[_n++] = _res;
22787 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022789 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022790 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022793 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22794 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022795 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022796 p->error_indicator = 1;
22797 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022798 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022799 return NULL;
22800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022801 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22802 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022803 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022804 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022805 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022806}
22807
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022808// _loop0_121: ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022809static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022810_loop0_121_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022811{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022812 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022813 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022814 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022815 return NULL;
22816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022817 void *_res = NULL;
22818 int _mark = p->mark;
22819 int _start_mark = p->mark;
22820 void **_children = PyMem_Malloc(sizeof(void *));
22821 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022822 p->error_indicator = 1;
22823 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022824 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022825 return NULL;
22826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022827 ssize_t _children_capacity = 1;
22828 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022829 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022830 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022831 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022832 return NULL;
22833 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022834 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022835 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022836 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022837 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022838 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022839 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022840 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022841 )
22842 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022843 _res = elem;
22844 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022845 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022846 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022847 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022848 return NULL;
22849 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022850 if (_n == _children_capacity) {
22851 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022852 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22853 if (!_new_children) {
22854 p->error_indicator = 1;
22855 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022856 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022857 return NULL;
22858 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022859 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022861 _children[_n++] = _res;
22862 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022864 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022865 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022868 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22869 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022870 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022871 p->error_indicator = 1;
22872 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022873 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022874 return NULL;
22875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022876 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22877 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022878 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022879 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022880 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022881}
22882
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022883// _gather_120: star_target _loop0_121
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022884static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022885_gather_120_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022886{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022887 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022889 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022890 return NULL;
22891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022892 asdl_seq * _res = NULL;
22893 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022894 { // star_target _loop0_121
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022895 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022896 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022897 return NULL;
22898 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022899 D(fprintf(stderr, "%*c> _gather_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_121"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022900 expr_ty elem;
22901 asdl_seq * seq;
22902 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022903 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022904 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022905 (seq = _loop0_121_rule(p)) // _loop0_121
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022906 )
22907 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022908 D(fprintf(stderr, "%*c+ _gather_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_121"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022909 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022910 goto done;
22911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022912 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022913 D(fprintf(stderr, "%*c%s _gather_120[%d-%d]: %s failed!\n", p->level, ' ',
22914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_121"));
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
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022922// _tmp_122: !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022923static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022924_tmp_122_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;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022933 { // !'*' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022934 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022935 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022936 return NULL;
22937 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022938 D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022939 expr_ty star_target_var;
22940 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022941 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022942 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022943 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022944 )
22945 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022946 D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022947 _res = star_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022948 goto done;
22949 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022950 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022951 D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022954 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022955 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022956 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022957 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022958}
22959
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022960// _loop0_124: ',' del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022961static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022962_loop0_124_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022963{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022964 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022966 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022967 return NULL;
22968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022969 void *_res = NULL;
22970 int _mark = p->mark;
22971 int _start_mark = p->mark;
22972 void **_children = PyMem_Malloc(sizeof(void *));
22973 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022974 p->error_indicator = 1;
22975 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022976 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022977 return NULL;
22978 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022979 ssize_t _children_capacity = 1;
22980 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022981 { // ',' del_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022982 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022983 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022984 return NULL;
22985 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010022986 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022987 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022988 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022989 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022990 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022991 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022992 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022993 )
22994 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022995 _res = elem;
22996 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022997 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022998 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022999 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023000 return NULL;
23001 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023002 if (_n == _children_capacity) {
23003 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023004 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23005 if (!_new_children) {
23006 p->error_indicator = 1;
23007 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023008 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023009 return NULL;
23010 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023011 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023013 _children[_n++] = _res;
23014 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023015 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023016 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023017 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023020 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23021 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023022 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023023 p->error_indicator = 1;
23024 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023025 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023026 return NULL;
23027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023028 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23029 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023030 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023031 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023032 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023033}
23034
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023035// _gather_123: del_target _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023036static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023037_gather_123_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023038{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023039 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023040 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023041 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023042 return NULL;
23043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023044 asdl_seq * _res = NULL;
23045 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023046 { // del_target _loop0_124
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023047 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023048 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023049 return NULL;
23050 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023051 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_124"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023052 expr_ty elem;
23053 asdl_seq * seq;
23054 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023055 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023056 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023057 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023058 )
23059 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023060 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_124"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023061 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023062 goto done;
23063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023064 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023065 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
23066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_124"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023068 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023069 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023070 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023071 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023072}
23073
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023074// _loop0_126: ',' target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023075static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023076_loop0_126_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023077{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023078 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023080 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023081 return NULL;
23082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023083 void *_res = NULL;
23084 int _mark = p->mark;
23085 int _start_mark = p->mark;
23086 void **_children = PyMem_Malloc(sizeof(void *));
23087 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023088 p->error_indicator = 1;
23089 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023090 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023091 return NULL;
23092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023093 ssize_t _children_capacity = 1;
23094 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023095 { // ',' target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023096 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023097 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023098 return NULL;
23099 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023100 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023101 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023102 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023103 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023104 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023105 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023106 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023107 )
23108 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023109 _res = elem;
23110 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023111 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023112 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023114 return NULL;
23115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023116 if (_n == _children_capacity) {
23117 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023118 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23119 if (!_new_children) {
23120 p->error_indicator = 1;
23121 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023122 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023123 return NULL;
23124 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023125 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023126 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023127 _children[_n++] = _res;
23128 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023130 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023131 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023134 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23135 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023136 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023137 p->error_indicator = 1;
23138 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023139 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023140 return NULL;
23141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023142 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23143 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023144 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023145 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023146 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023147}
23148
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023149// _gather_125: target _loop0_126
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023150static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023151_gather_125_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023152{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023153 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023154 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023155 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023156 return NULL;
23157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023158 asdl_seq * _res = NULL;
23159 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023160 { // target _loop0_126
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023161 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023162 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023163 return NULL;
23164 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023165 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_126"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023166 expr_ty elem;
23167 asdl_seq * seq;
23168 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023169 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023170 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023171 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023172 )
23173 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023174 D(fprintf(stderr, "%*c+ _gather_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_126"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023175 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023176 goto done;
23177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023178 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023179 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
23180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_126"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023182 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023183 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023184 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023185 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023186}
23187
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023188// _tmp_127: args | expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023189static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023190_tmp_127_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023191{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023192 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023193 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023194 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023195 return NULL;
23196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023197 void * _res = NULL;
23198 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023199 { // args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023200 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023201 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023202 return NULL;
23203 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023204 D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023205 expr_ty args_var;
23206 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023207 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023208 )
23209 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023210 D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023211 _res = args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023212 goto done;
23213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023214 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023215 D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023217 }
23218 { // expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023219 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023220 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023221 return NULL;
23222 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023223 D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023224 expr_ty expression_var;
23225 asdl_seq* for_if_clauses_var;
23226 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023227 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023228 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023229 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023230 )
23231 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023232 D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023233 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023234 goto done;
23235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023236 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023237 D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023240 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023241 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023242 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023243 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023244}
23245
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023246// _loop0_128: star_named_expressions
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023247static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023248_loop0_128_rule(Parser *p)
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023249{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023250 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023251 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023252 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023253 return NULL;
23254 }
23255 void *_res = NULL;
23256 int _mark = p->mark;
23257 int _start_mark = p->mark;
23258 void **_children = PyMem_Malloc(sizeof(void *));
23259 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023260 p->error_indicator = 1;
23261 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023262 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023263 return NULL;
23264 }
23265 ssize_t _children_capacity = 1;
23266 ssize_t _n = 0;
23267 { // star_named_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023268 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023269 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023270 return NULL;
23271 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023272 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023273 asdl_seq* star_named_expressions_var;
23274 while (
23275 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23276 )
23277 {
23278 _res = star_named_expressions_var;
23279 if (_n == _children_capacity) {
23280 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023281 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23282 if (!_new_children) {
23283 p->error_indicator = 1;
23284 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023285 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023286 return NULL;
23287 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023288 _children = _new_children;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023289 }
23290 _children[_n++] = _res;
23291 _mark = p->mark;
23292 }
23293 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023294 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023296 }
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023297 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23298 if (!_seq) {
23299 PyMem_Free(_children);
23300 p->error_indicator = 1;
23301 PyErr_NoMemory();
23302 D(p->level--);
23303 return NULL;
23304 }
23305 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23306 PyMem_Free(_children);
23307 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023308 D(p->level--);
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030023309 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023310}
23311
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023312// _loop0_129: (star_targets '=')
23313static asdl_seq *
23314_loop0_129_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023315{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023316 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023317 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023318 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023319 return NULL;
23320 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023321 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023322 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023323 int _start_mark = p->mark;
23324 void **_children = PyMem_Malloc(sizeof(void *));
23325 if (!_children) {
23326 p->error_indicator = 1;
23327 PyErr_NoMemory();
23328 D(p->level--);
23329 return NULL;
23330 }
23331 ssize_t _children_capacity = 1;
23332 ssize_t _n = 0;
23333 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023335 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023336 return NULL;
23337 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023338 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023339 void *_tmp_151_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023340 while (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023341 (_tmp_151_var = _tmp_151_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023342 )
23343 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023344 _res = _tmp_151_var;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023345 if (_n == _children_capacity) {
23346 _children_capacity *= 2;
23347 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23348 if (!_new_children) {
23349 p->error_indicator = 1;
23350 PyErr_NoMemory();
23351 D(p->level--);
23352 return NULL;
23353 }
23354 _children = _new_children;
23355 }
23356 _children[_n++] = _res;
23357 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023359 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023360 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023362 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023363 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23364 if (!_seq) {
23365 PyMem_Free(_children);
23366 p->error_indicator = 1;
23367 PyErr_NoMemory();
23368 D(p->level--);
23369 return NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023370 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023371 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23372 PyMem_Free(_children);
23373 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023374 D(p->level--);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023375 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023376}
23377
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023378// _loop0_130: (star_targets '=')
23379static asdl_seq *
23380_loop0_130_rule(Parser *p)
23381{
23382 D(p->level++);
23383 if (p->error_indicator) {
23384 D(p->level--);
23385 return NULL;
23386 }
23387 void *_res = NULL;
23388 int _mark = p->mark;
23389 int _start_mark = p->mark;
23390 void **_children = PyMem_Malloc(sizeof(void *));
23391 if (!_children) {
23392 p->error_indicator = 1;
23393 PyErr_NoMemory();
23394 D(p->level--);
23395 return NULL;
23396 }
23397 ssize_t _children_capacity = 1;
23398 ssize_t _n = 0;
23399 { // (star_targets '=')
23400 if (p->error_indicator) {
23401 D(p->level--);
23402 return NULL;
23403 }
23404 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23405 void *_tmp_152_var;
23406 while (
23407 (_tmp_152_var = _tmp_152_rule(p)) // star_targets '='
23408 )
23409 {
23410 _res = _tmp_152_var;
23411 if (_n == _children_capacity) {
23412 _children_capacity *= 2;
23413 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23414 if (!_new_children) {
23415 p->error_indicator = 1;
23416 PyErr_NoMemory();
23417 D(p->level--);
23418 return NULL;
23419 }
23420 _children = _new_children;
23421 }
23422 _children[_n++] = _res;
23423 _mark = p->mark;
23424 }
23425 p->mark = _mark;
23426 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
23427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23428 }
23429 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23430 if (!_seq) {
23431 PyMem_Free(_children);
23432 p->error_indicator = 1;
23433 PyErr_NoMemory();
23434 D(p->level--);
23435 return NULL;
23436 }
23437 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23438 PyMem_Free(_children);
23439 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
23440 D(p->level--);
23441 return _seq;
23442}
23443
23444// _tmp_131: yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023445static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023446_tmp_131_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023447{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023448 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023449 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023450 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023451 return NULL;
23452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023453 void * _res = NULL;
23454 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023455 { // yield_expr
23456 if (p->error_indicator) {
23457 D(p->level--);
23458 return NULL;
23459 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023460 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023461 expr_ty yield_expr_var;
23462 if (
23463 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23464 )
23465 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023466 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023467 _res = yield_expr_var;
23468 goto done;
23469 }
23470 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023471 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23473 }
23474 { // star_expressions
23475 if (p->error_indicator) {
23476 D(p->level--);
23477 return NULL;
23478 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023479 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023480 expr_ty star_expressions_var;
23481 if (
23482 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23483 )
23484 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023485 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023486 _res = star_expressions_var;
23487 goto done;
23488 }
23489 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023490 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23492 }
23493 _res = NULL;
23494 done:
23495 D(p->level--);
23496 return _res;
23497}
23498
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023499// _tmp_132: '[' | '(' | '{'
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023500static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023501_tmp_132_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023502{
23503 D(p->level++);
23504 if (p->error_indicator) {
23505 D(p->level--);
23506 return NULL;
23507 }
23508 void * _res = NULL;
23509 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023510 { // '['
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 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023515 D(fprintf(stderr, "%*c> _tmp_132[%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, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023519 )
23520 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023521 D(fprintf(stderr, "%*c+ _tmp_132[%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;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023526 D(fprintf(stderr, "%*c%s _tmp_132[%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 }
23529 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023532 return NULL;
23533 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023534 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023535 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023536 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023537 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023538 )
23539 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023540 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023541 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023542 goto done;
23543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023544 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023545 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023547 }
23548 { // '{'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023549 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023550 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023551 return NULL;
23552 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023553 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023554 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023555 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023556 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023557 )
23558 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023559 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023560 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023561 goto done;
23562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023563 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023564 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023567 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023568 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023569 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023570 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023571}
23572
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023573// _loop0_133: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023574static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023575_loop0_133_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023576{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023577 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023578 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023579 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023580 return NULL;
23581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023582 void *_res = NULL;
23583 int _mark = p->mark;
23584 int _start_mark = p->mark;
23585 void **_children = PyMem_Malloc(sizeof(void *));
23586 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023587 p->error_indicator = 1;
23588 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023589 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023590 return NULL;
23591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023592 ssize_t _children_capacity = 1;
23593 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023594 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023595 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023596 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023597 return NULL;
23598 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023599 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023600 arg_ty param_no_default_var;
23601 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023602 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023603 )
23604 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023605 _res = param_no_default_var;
23606 if (_n == _children_capacity) {
23607 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023608 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23609 if (!_new_children) {
23610 p->error_indicator = 1;
23611 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023612 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023613 return NULL;
23614 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023615 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023616 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023617 _children[_n++] = _res;
23618 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023620 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023621 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023624 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23625 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023626 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023627 p->error_indicator = 1;
23628 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023629 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023630 return NULL;
23631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023632 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23633 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023634 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023635 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023636 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023637}
23638
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023639// _tmp_134: slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023640static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023641_tmp_134_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023642{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023643 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023644 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023645 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023646 return NULL;
23647 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023648 void * _res = NULL;
23649 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023650 { // slash_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023651 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023652 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023653 return NULL;
23654 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023655 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023656 SlashWithDefault* slash_with_default_var;
23657 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023658 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023659 )
23660 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023661 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023662 _res = slash_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023663 goto done;
23664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023665 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023666 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023668 }
Guido van Rossumc001c092020-04-30 12:12:19 -070023669 { // param_with_default+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023671 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023672 return NULL;
23673 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023674 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23675 asdl_seq * _loop1_153_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023676 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023677 (_loop1_153_var = _loop1_153_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023678 )
23679 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023680 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23681 _res = _loop1_153_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023682 goto done;
23683 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023684 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023685 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023687 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023688 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023689 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023690 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023691 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023692}
23693
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023694// _loop0_135: lambda_param_no_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023695static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023696_loop0_135_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023697{
23698 D(p->level++);
23699 if (p->error_indicator) {
23700 D(p->level--);
23701 return NULL;
23702 }
23703 void *_res = NULL;
23704 int _mark = p->mark;
23705 int _start_mark = p->mark;
23706 void **_children = PyMem_Malloc(sizeof(void *));
23707 if (!_children) {
23708 p->error_indicator = 1;
23709 PyErr_NoMemory();
23710 D(p->level--);
23711 return NULL;
23712 }
23713 ssize_t _children_capacity = 1;
23714 ssize_t _n = 0;
23715 { // lambda_param_no_default
23716 if (p->error_indicator) {
23717 D(p->level--);
23718 return NULL;
23719 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023720 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023721 arg_ty lambda_param_no_default_var;
23722 while (
23723 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23724 )
23725 {
23726 _res = lambda_param_no_default_var;
23727 if (_n == _children_capacity) {
23728 _children_capacity *= 2;
23729 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23730 if (!_new_children) {
23731 p->error_indicator = 1;
23732 PyErr_NoMemory();
23733 D(p->level--);
23734 return NULL;
23735 }
23736 _children = _new_children;
23737 }
23738 _children[_n++] = _res;
23739 _mark = p->mark;
23740 }
23741 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023742 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
23744 }
23745 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23746 if (!_seq) {
23747 PyMem_Free(_children);
23748 p->error_indicator = 1;
23749 PyErr_NoMemory();
23750 D(p->level--);
23751 return NULL;
23752 }
23753 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23754 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023755 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023756 D(p->level--);
23757 return _seq;
23758}
23759
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023760// _tmp_136: lambda_slash_with_default | lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023761static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023762_tmp_136_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023763{
23764 D(p->level++);
23765 if (p->error_indicator) {
23766 D(p->level--);
23767 return NULL;
23768 }
23769 void * _res = NULL;
23770 int _mark = p->mark;
23771 { // lambda_slash_with_default
23772 if (p->error_indicator) {
23773 D(p->level--);
23774 return NULL;
23775 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023776 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023777 SlashWithDefault* lambda_slash_with_default_var;
23778 if (
23779 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
23780 )
23781 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023782 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023783 _res = lambda_slash_with_default_var;
23784 goto done;
23785 }
23786 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023787 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
23789 }
23790 { // lambda_param_with_default+
23791 if (p->error_indicator) {
23792 D(p->level--);
23793 return NULL;
23794 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023795 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23796 asdl_seq * _loop1_154_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023797 if (
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023798 (_loop1_154_var = _loop1_154_rule(p)) // lambda_param_with_default+
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023799 )
23800 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023801 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23802 _res = _loop1_154_var;
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023803 goto done;
23804 }
23805 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023806 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
23808 }
23809 _res = NULL;
23810 done:
23811 D(p->level--);
23812 return _res;
23813}
23814
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023815// _tmp_137: ')' | ',' (')' | '**')
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023816static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023817_tmp_137_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023818{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023819 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023820 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023821 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023822 return NULL;
23823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023824 void * _res = NULL;
23825 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023826 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023827 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023828 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023829 return NULL;
23830 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023831 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023832 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023833 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023834 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023835 )
23836 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023837 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023838 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023839 goto done;
23840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023841 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023842 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023844 }
23845 { // ',' (')' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023847 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023848 return NULL;
23849 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023850 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023851 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023852 void *_tmp_155_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023853 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023854 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023855 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023856 (_tmp_155_var = _tmp_155_rule(p)) // ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023857 )
23858 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023859 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
23860 _res = _PyPegen_dummy_name(p, _literal, _tmp_155_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023861 goto done;
23862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023863 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023864 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023867 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023868 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023869 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023870 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023871}
23872
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023873// _tmp_138: ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023874static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023875_tmp_138_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023876{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023877 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023878 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023879 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023880 return NULL;
23881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023882 void * _res = NULL;
23883 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023884 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023885 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023886 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023887 return NULL;
23888 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023889 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023890 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023891 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023892 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023893 )
23894 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023895 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023896 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023897 goto done;
23898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023899 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023900 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023902 }
23903 { // ',' (':' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023905 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023906 return NULL;
23907 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023908 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023909 Token * _literal;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023910 void *_tmp_156_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023911 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023912 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023913 &&
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023914 (_tmp_156_var = _tmp_156_rule(p)) // ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023915 )
23916 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023917 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
23918 _res = _PyPegen_dummy_name(p, _literal, _tmp_156_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023919 goto done;
23920 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023921 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023922 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023925 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023926 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023927 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023928 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023929}
23930
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023931// _tmp_139: star_targets '='
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023932static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023933_tmp_139_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023934{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023935 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023936 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023937 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023938 return NULL;
23939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023940 void * _res = NULL;
23941 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023942 { // star_targets '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023943 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023944 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023945 return NULL;
23946 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023947 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023948 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023949 expr_ty z;
23950 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023951 (z = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023952 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023953 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023954 )
23955 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023956 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023957 _res = z;
23958 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023959 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023960 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023961 return NULL;
23962 }
23963 goto done;
23964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023965 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010023966 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023969 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023970 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023971 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023972 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023973}
23974
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070023975// _tmp_140: '.' | '...'
23976static void *
23977_tmp_140_rule(Parser *p)
23978{
23979 D(p->level++);
23980 if (p->error_indicator) {
23981 D(p->level--);
23982 return NULL;
23983 }
23984 void * _res = NULL;
23985 int _mark = p->mark;
23986 { // '.'
23987 if (p->error_indicator) {
23988 D(p->level--);
23989 return NULL;
23990 }
23991 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23992 Token * _literal;
23993 if (
23994 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23995 )
23996 {
23997 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23998 _res = _literal;
23999 goto done;
24000 }
24001 p->mark = _mark;
24002 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24004 }
24005 { // '...'
24006 if (p->error_indicator) {
24007 D(p->level--);
24008 return NULL;
24009 }
24010 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24011 Token * _literal;
24012 if (
24013 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24014 )
24015 {
24016 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24017 _res = _literal;
24018 goto done;
24019 }
24020 p->mark = _mark;
24021 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24023 }
24024 _res = NULL;
24025 done:
24026 D(p->level--);
24027 return _res;
24028}
24029
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024030// _tmp_141: '.' | '...'
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024031static void *
24032_tmp_141_rule(Parser *p)
24033{
24034 D(p->level++);
24035 if (p->error_indicator) {
24036 D(p->level--);
24037 return NULL;
24038 }
24039 void * _res = NULL;
24040 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024041 { // '.'
24042 if (p->error_indicator) {
24043 D(p->level--);
24044 return NULL;
24045 }
24046 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24047 Token * _literal;
24048 if (
24049 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24050 )
24051 {
24052 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24053 _res = _literal;
24054 goto done;
24055 }
24056 p->mark = _mark;
24057 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
24058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24059 }
24060 { // '...'
24061 if (p->error_indicator) {
24062 D(p->level--);
24063 return NULL;
24064 }
24065 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24066 Token * _literal;
24067 if (
24068 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24069 )
24070 {
24071 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24072 _res = _literal;
24073 goto done;
24074 }
24075 p->mark = _mark;
24076 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
24077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24078 }
24079 _res = NULL;
24080 done:
24081 D(p->level--);
24082 return _res;
24083}
24084
24085// _tmp_142: '@' named_expression NEWLINE
24086static void *
24087_tmp_142_rule(Parser *p)
24088{
24089 D(p->level++);
24090 if (p->error_indicator) {
24091 D(p->level--);
24092 return NULL;
24093 }
24094 void * _res = NULL;
24095 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024096 { // '@' named_expression NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024098 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024099 return NULL;
24100 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024101 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024102 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024103 expr_ty f;
Pablo Galindob796b3f2020-05-01 12:32:26 +010024104 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024105 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024106 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024107 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024108 (f = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024109 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024110 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024111 )
24112 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024113 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024114 _res = f;
24115 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024116 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024117 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024118 return NULL;
24119 }
24120 goto done;
24121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024122 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024123 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024126 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024127 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024128 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024129 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024130}
24131
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024132// _tmp_143: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024133static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024134_tmp_143_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024135{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024136 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024138 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024139 return NULL;
24140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024141 void * _res = NULL;
24142 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024143 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024144 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024145 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024146 return NULL;
24147 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024148 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024149 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024150 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024151 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024152 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024153 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024154 (c = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024155 )
24156 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024157 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024158 _res = c;
24159 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024160 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024161 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024162 return NULL;
24163 }
24164 goto done;
24165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024166 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024167 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024170 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024171 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024172 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024173 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024174}
24175
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024176// _tmp_144: ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024177static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024178_tmp_144_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024179{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024180 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024181 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024182 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024183 return NULL;
24184 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024185 void * _res = NULL;
24186 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024187 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024188 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024189 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024190 return NULL;
24191 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024192 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024193 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024194 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024195 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024196 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024197 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024198 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024199 )
24200 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024201 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024202 _res = c;
24203 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024204 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024206 return NULL;
24207 }
24208 goto done;
24209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024210 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024211 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024214 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024215 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024216 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024217 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024218}
24219
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024220// _tmp_145: 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024221static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024222_tmp_145_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024223{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024224 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024225 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024226 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024227 return NULL;
24228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024229 void * _res = NULL;
24230 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024231 { // 'or' conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024232 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024233 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024234 return NULL;
24235 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024236 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024237 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024238 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024239 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024240 (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024241 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024242 (c = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024243 )
24244 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024245 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024246 _res = c;
24247 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024248 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024249 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024250 return NULL;
24251 }
24252 goto done;
24253 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024254 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024255 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024257 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024258 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024259 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024260 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024261 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024262}
24263
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024264// _tmp_146: 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024265static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024266_tmp_146_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024267{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024268 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024269 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024270 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024271 return NULL;
24272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024273 void * _res = NULL;
24274 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024275 { // 'and' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024276 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024277 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024278 return NULL;
24279 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024280 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024281 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024282 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024283 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024284 (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024285 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024286 (c = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024287 )
24288 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024289 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024290 _res = c;
24291 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024292 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024293 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024294 return NULL;
24295 }
24296 goto done;
24297 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024298 p->mark = _mark;
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024299 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024301 }
24302 _res = NULL;
24303 done:
24304 D(p->level--);
24305 return _res;
24306}
24307
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024308// _tmp_147: 'if' disjunction
24309static void *
24310_tmp_147_rule(Parser *p)
24311{
24312 D(p->level++);
24313 if (p->error_indicator) {
24314 D(p->level--);
24315 return NULL;
24316 }
24317 void * _res = NULL;
24318 int _mark = p->mark;
24319 { // 'if' disjunction
24320 if (p->error_indicator) {
24321 D(p->level--);
24322 return NULL;
24323 }
24324 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24325 Token * _keyword;
24326 expr_ty z;
24327 if (
24328 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24329 &&
24330 (z = disjunction_rule(p)) // disjunction
24331 )
24332 {
24333 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24334 _res = z;
24335 if (_res == NULL && PyErr_Occurred()) {
24336 p->error_indicator = 1;
24337 D(p->level--);
24338 return NULL;
24339 }
24340 goto done;
24341 }
24342 p->mark = _mark;
24343 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
24344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24345 }
24346 _res = NULL;
24347 done:
24348 D(p->level--);
24349 return _res;
24350}
24351
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024352// _tmp_148: 'if' disjunction
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024353static void *
24354_tmp_148_rule(Parser *p)
24355{
24356 D(p->level++);
24357 if (p->error_indicator) {
24358 D(p->level--);
24359 return NULL;
24360 }
24361 void * _res = NULL;
24362 int _mark = p->mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024363 { // 'if' disjunction
24364 if (p->error_indicator) {
24365 D(p->level--);
24366 return NULL;
24367 }
24368 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24369 Token * _keyword;
24370 expr_ty z;
24371 if (
24372 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24373 &&
24374 (z = disjunction_rule(p)) // disjunction
24375 )
24376 {
24377 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24378 _res = z;
24379 if (_res == NULL && PyErr_Occurred()) {
24380 p->error_indicator = 1;
24381 D(p->level--);
24382 return NULL;
24383 }
24384 goto done;
24385 }
24386 p->mark = _mark;
24387 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
24388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24389 }
24390 _res = NULL;
24391 done:
24392 D(p->level--);
24393 return _res;
24394}
24395
24396// _tmp_149: starred_expression | named_expression !'='
24397static void *
24398_tmp_149_rule(Parser *p)
24399{
24400 D(p->level++);
24401 if (p->error_indicator) {
24402 D(p->level--);
24403 return NULL;
24404 }
24405 void * _res = NULL;
24406 int _mark = p->mark;
24407 { // starred_expression
24408 if (p->error_indicator) {
24409 D(p->level--);
24410 return NULL;
24411 }
24412 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
24413 expr_ty starred_expression_var;
24414 if (
24415 (starred_expression_var = starred_expression_rule(p)) // starred_expression
24416 )
24417 {
24418 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
24419 _res = starred_expression_var;
24420 goto done;
24421 }
24422 p->mark = _mark;
24423 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
24424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
24425 }
24426 { // named_expression !'='
24427 if (p->error_indicator) {
24428 D(p->level--);
24429 return NULL;
24430 }
24431 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
24432 expr_ty named_expression_var;
24433 if (
24434 (named_expression_var = named_expression_rule(p)) // named_expression
24435 &&
24436 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
24437 )
24438 {
24439 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
24440 _res = named_expression_var;
24441 goto done;
24442 }
24443 p->mark = _mark;
24444 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
24445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
24446 }
24447 _res = NULL;
24448 done:
24449 D(p->level--);
24450 return _res;
24451}
24452
24453// _tmp_150: ',' star_target
24454static void *
24455_tmp_150_rule(Parser *p)
24456{
24457 D(p->level++);
24458 if (p->error_indicator) {
24459 D(p->level--);
24460 return NULL;
24461 }
24462 void * _res = NULL;
24463 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024464 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024465 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024466 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024467 return NULL;
24468 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024469 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024470 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024471 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024472 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024473 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024474 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010024475 (c = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024476 )
24477 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024478 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024479 _res = c;
24480 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024481 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024482 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024483 return NULL;
24484 }
24485 goto done;
24486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024487 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024488 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoua5442b22020-06-19 03:03:58 +030024489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024490 }
24491 _res = NULL;
24492 done:
24493 D(p->level--);
24494 return _res;
24495}
24496
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024497// _tmp_151: star_targets '='
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024498static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024499_tmp_151_rule(Parser *p)
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024500{
24501 D(p->level++);
24502 if (p->error_indicator) {
24503 D(p->level--);
24504 return NULL;
24505 }
24506 void * _res = NULL;
24507 int _mark = p->mark;
24508 { // star_targets '='
24509 if (p->error_indicator) {
24510 D(p->level--);
24511 return NULL;
24512 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024513 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024514 Token * _literal;
24515 expr_ty star_targets_var;
24516 if (
24517 (star_targets_var = star_targets_rule(p)) // star_targets
24518 &&
24519 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24520 )
24521 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024522 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024523 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24524 goto done;
24525 }
24526 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024527 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24529 }
24530 _res = NULL;
24531 done:
24532 D(p->level--);
24533 return _res;
24534}
24535
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024536// _tmp_152: star_targets '='
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024537static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024538_tmp_152_rule(Parser *p)
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024539{
24540 D(p->level++);
24541 if (p->error_indicator) {
24542 D(p->level--);
24543 return NULL;
24544 }
24545 void * _res = NULL;
24546 int _mark = p->mark;
24547 { // star_targets '='
24548 if (p->error_indicator) {
24549 D(p->level--);
24550 return NULL;
24551 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024552 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024553 Token * _literal;
24554 expr_ty star_targets_var;
24555 if (
24556 (star_targets_var = star_targets_rule(p)) // star_targets
24557 &&
24558 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24559 )
24560 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024561 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024562 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24563 goto done;
24564 }
24565 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024566 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24568 }
24569 _res = NULL;
24570 done:
24571 D(p->level--);
24572 return _res;
24573}
24574
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024575// _loop1_153: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024576static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024577_loop1_153_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070024578{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024579 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070024580 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024581 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024582 return NULL;
24583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024584 void *_res = NULL;
24585 int _mark = p->mark;
24586 int _start_mark = p->mark;
24587 void **_children = PyMem_Malloc(sizeof(void *));
24588 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024589 p->error_indicator = 1;
24590 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024591 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024592 return NULL;
24593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024594 ssize_t _children_capacity = 1;
24595 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070024596 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024597 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024598 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024599 return NULL;
24600 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024601 D(fprintf(stderr, "%*c> _loop1_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024602 NameDefaultPair* param_with_default_var;
24603 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010024604 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070024605 )
24606 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024607 _res = param_with_default_var;
24608 if (_n == _children_capacity) {
24609 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024610 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24611 if (!_new_children) {
24612 p->error_indicator = 1;
24613 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024614 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024615 return NULL;
24616 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024617 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070024618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024619 _children[_n++] = _res;
24620 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070024621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024622 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024623 D(fprintf(stderr, "%*c%s _loop1_153[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070024625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024626 if (_n == 0 || p->error_indicator) {
24627 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024628 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024629 return NULL;
24630 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024631 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24632 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024633 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030024634 p->error_indicator = 1;
24635 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024636 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024637 return NULL;
24638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024639 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24640 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024641 _PyPegen_insert_memo(p, _start_mark, _loop1_153_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024642 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024643 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070024644}
24645
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024646// _loop1_154: lambda_param_with_default
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024647static asdl_seq *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024648_loop1_154_rule(Parser *p)
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024649{
24650 D(p->level++);
24651 if (p->error_indicator) {
24652 D(p->level--);
24653 return NULL;
24654 }
24655 void *_res = NULL;
24656 int _mark = p->mark;
24657 int _start_mark = p->mark;
24658 void **_children = PyMem_Malloc(sizeof(void *));
24659 if (!_children) {
24660 p->error_indicator = 1;
24661 PyErr_NoMemory();
24662 D(p->level--);
24663 return NULL;
24664 }
24665 ssize_t _children_capacity = 1;
24666 ssize_t _n = 0;
24667 { // lambda_param_with_default
24668 if (p->error_indicator) {
24669 D(p->level--);
24670 return NULL;
24671 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024672 D(fprintf(stderr, "%*c> _loop1_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024673 NameDefaultPair* lambda_param_with_default_var;
24674 while (
24675 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24676 )
24677 {
24678 _res = lambda_param_with_default_var;
24679 if (_n == _children_capacity) {
24680 _children_capacity *= 2;
24681 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24682 if (!_new_children) {
24683 p->error_indicator = 1;
24684 PyErr_NoMemory();
24685 D(p->level--);
24686 return NULL;
24687 }
24688 _children = _new_children;
24689 }
24690 _children[_n++] = _res;
24691 _mark = p->mark;
24692 }
24693 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024694 D(fprintf(stderr, "%*c%s _loop1_154[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24696 }
24697 if (_n == 0 || p->error_indicator) {
24698 PyMem_Free(_children);
24699 D(p->level--);
24700 return NULL;
24701 }
24702 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
24703 if (!_seq) {
24704 PyMem_Free(_children);
24705 p->error_indicator = 1;
24706 PyErr_NoMemory();
24707 D(p->level--);
24708 return NULL;
24709 }
24710 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24711 PyMem_Free(_children);
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024712 _PyPegen_insert_memo(p, _start_mark, _loop1_154_type, _seq);
Miss Islington (bot)d55ed7b2020-06-10 06:24:41 -070024713 D(p->level--);
24714 return _seq;
24715}
24716
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024717// _tmp_155: ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024718static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024719_tmp_155_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024720{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024721 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024722 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024723 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024724 return NULL;
24725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024726 void * _res = NULL;
24727 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024728 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024729 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024730 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024731 return NULL;
24732 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024733 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024734 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024735 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024736 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024737 )
24738 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024739 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024740 _res = _literal;
24741 goto done;
24742 }
24743 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024744 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24746 }
24747 { // '**'
24748 if (p->error_indicator) {
24749 D(p->level--);
24750 return NULL;
24751 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024752 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024753 Token * _literal;
24754 if (
24755 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24756 )
24757 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024758 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024759 _res = _literal;
24760 goto done;
24761 }
24762 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024763 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24765 }
24766 _res = NULL;
24767 done:
24768 D(p->level--);
24769 return _res;
24770}
24771
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024772// _tmp_156: ':' | '**'
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024773static void *
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024774_tmp_156_rule(Parser *p)
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024775{
24776 D(p->level++);
24777 if (p->error_indicator) {
24778 D(p->level--);
24779 return NULL;
24780 }
24781 void * _res = NULL;
24782 int _mark = p->mark;
24783 { // ':'
24784 if (p->error_indicator) {
24785 D(p->level--);
24786 return NULL;
24787 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024788 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024789 Token * _literal;
24790 if (
24791 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24792 )
24793 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024794 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024795 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024796 goto done;
24797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024798 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024799 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoud01a3e72020-06-27 02:14:12 +030024800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024801 }
24802 { // '**'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024803 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024804 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024805 return NULL;
24806 }
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024807 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024808 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024809 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024810 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024811 )
24812 {
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024813 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024814 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024815 goto done;
24816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024817 p->mark = _mark;
Pablo Galindo8de34cd2020-09-02 21:30:51 +010024818 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024821 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024822 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024823 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024824 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024825}
24826
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024827void *
24828_PyPegen_parse(Parser *p)
24829{
24830 // Initialize keywords
24831 p->keywords = reserved_keywords;
24832 p->n_keyword_lists = n_keyword_lists;
24833
24834 // Run parser
24835 void *result = NULL;
24836 if (p->start_rule == Py_file_input) {
24837 result = file_rule(p);
24838 } else if (p->start_rule == Py_single_input) {
24839 result = interactive_rule(p);
24840 } else if (p->start_rule == Py_eval_input) {
24841 result = eval_rule(p);
Guido van Rossumc001c092020-04-30 12:12:19 -070024842 } else if (p->start_rule == Py_func_type_input) {
24843 result = func_type_rule(p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024844 } else if (p->start_rule == Py_fstring_input) {
24845 result = fstring_rule(p);
24846 }
24847
24848 return result;
24849}
24850
24851// The end